markdown:
/* * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. * * @APPLE_LICENSE_HEADER_START@ * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at *
[http://www.opensource.apple.com/apsl/]and read it before using this * file. * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. * * @APPLE_LICENSE_HEADER_END@ */ #ifdef SHLIB #include "shlib.h" #endif /* SHLIB */ /* * This file contains the routines that drives pass2 of the link-editor. In * pass2 the output is created and written. The sections from the input files * are copied into the output and relocated. The headers, relocation entries, * symbol table and string table are all copied into the output file. */ #include <stdlib.h> #if !(defined(KLD) && defined(__STATIC__)) #include <libc.h> #include <stdio.h> #include <mach/mach.h> #else /* defined(KLD) && defined(__STATIC__) */ #include <mach/kern_return.h> #endif /* !(defined(KLD) && defined(__STATIC__)) */ #include <stdarg.h> #include <string.h> #include <sys/file.h> #include <sys/types.h> #include <sys/stat.h> #include "stuff/openstep_mach.h" #include <mach-o/loader.h> #include <mach-o/nlist.h> #include <mach-o/reloc.h> #include "stuff/bool.h" #include "stuff/bytesex.h" #include "stuff/macosx_deployment_target.h" #include "ld.h" #include "live_refs.h" #include "objects.h" #include "fvmlibs.h" #include "dylibs.h" #include "sections.h" #include "pass1.h" #include "symbols.h" #include "layout.h" #include "pass2.h" #include "sets.h" #include "indirect_sections.h" /* * The total size of the output file and the memory buffer for the output file. */ __private_extern__ unsigned long output_size = 0; __private_extern__ char *output_addr = NULL; /* * This is used to setting the SG_NORELOC flag in the segment flags correctly. * This is an array of pointers to the merged sections in the output file that * is used by the relocation routines to set the field 'referenced' in the * merged section structure by indexing this array (directly without subtracting * one from the section number) with the section number of a merged symbol that * is refered to in a relocation entry. The array is created by the routine * create_output_sections_array() in here. Then after the 'referenced' field is * set by the relocation routines (like generic_reloc() in generic_reloc.c) and * the 'relocated' field is set by output_section() in sections.c then the * routine set_SG_NORELOC_flags() in here can use these two fields to set the * SG_NORELOC flag in the segments that have no relocation to or for them. */ __private_extern__ struct merged_section **output_sections = NULL; #ifndef RLD /* the file descriptor of the output file */ static int fd = 0; /* * This structure is used to describe blocks of the output file that are flushed * to the disk file with output_flush. It is kept in an ordered list starting * with output_blocks. */ static struct block { unsigned long offset; /* starting offset of this block */ unsigned long size; /* size of this block */ unsigned long written_offset;/* first page offset after starting offset */ unsigned long written_size; /* size of written area from written_offset */ struct block *next; /* next block in the list */ } *output_blocks; static void setup_output_flush(void); static void final_output_flush(void); #ifdef DEBUG static void print_block_list(void); #endif /* DEBUG */ static struct block *get_block(void); static void remove_block(struct block *block); static unsigned long trunc(unsigned long v, unsigned long r); #endif /* !defined(RLD) */ static void create_output_sections_array(void); static void set_SG_NORELOC_flags(void); static void output_headers(void); /* * pass2() creates the output file and the memory buffer to create the file * into. It drives the process to get everything copied into the buffer for * the output file. It then writes the output file and deallocates the buffer. */ __private_extern__ void pass2(void) { unsigned long i, j, section_type; struct object_list *object_list, **p; #ifndef RLD int mode; struct stat stat_buf; kern_return_t r; /* * Create the output file. The unlink() is done to handle the problem * when the outputfile is not writable but the directory allows the * file to be removed (since the file may not be there the return code * of the unlink() is ignored). */ (void)unlink(outputfile); if((fd = open(outputfile, O_WRONLY | O_CREAT | O_TRUNC, 0777)) == -1) system_fatal("can't create output file: %s", outputfile); #ifdef F_NOCACHE /* tell filesystem to NOT cache the file when reading or writing */ (void)fcntl(fd, F_NOCACHE, 1); #endif if(fstat(fd, &stat_buf) == -1) system_fatal("can't stat file: %s", outputfile); /* * Turn the execute bits on or off depending if there are any undefined * symbols in the output file. If the file existed before the above * open() call the creation mode in that call would have been ignored * so it has to be set explicitly in any case. */ if(output_mach_header.flags & MH_NOUNDEFS || (has_dynamic_linker_command && output_for_dyld)) mode = (stat_buf.st_mode & 0777) | 0111; else mode = (stat_buf.st_mode & 0777) & ~0111; if(fchmod(fd, mode) == -1) system_fatal("can't set execution permissions output file: %s", outputfile); /* * Create the buffer to copy the parts of the output file into. */ if((r = vm_allocate(mach_task_self(), (vm_address_t *)&output_addr, output_size, TRUE)) != KERN_SUCCESS) mach_fatal(r, "can't vm_allocate() buffer for output file of size " "%lu", output_size); /* * Set up for flushing pages to the output file as they fill up. */ if(flush) setup_output_flush(); /* * Make sure pure_instruction sections are padded with nop's. */ nop_pure_instruction_scattered_sections(); #endif /* !defined(RLD) */ /* * The strings indexes for the merged string blocks need to be set * before the dylib tables are output because the module names are in * them as well as the merged symbol names. */ set_merged_string_block_indexes(); #ifndef RLD /* * Copy the dylib tables into the output file. This is done before the * sections are outputted so that the indexes to the local and external * relocation entries for each object can be used as running indexes as * each section in the object is outputted. */ if(filetype == MH_DYLIB) output_dylib_tables(); #endif /* !defined(RLD) */ /* * Create the array of pointers to merged sections in the output file * so the relocation routines can use it to set the 'referenced' fields * in the merged section structures. */ create_output_sections_array(); /* * Copy the merged literal sections and the sections created from files * into the output object file. */ output_literal_sections(); #ifndef RLD output_sections_from_files(); #endif /* !defined(RLD) */ /* * For each non-literal content section in each object file loaded * relocate it into the output file (along with the relocation entries). * Then relocate local symbols into the output file for the loaded * objects. */ for(p = &objects; *p; p = &(object_list->next)){ object_list = *p; for(i = 0; i < object_list->used; i++){ cur_obj = &(object_list->object_files[i]); /* print the object file name if tracing */ if(trace){ print_obj_name(cur_obj); print("\n"); } if(cur_obj->dylib) continue; if(cur_obj->bundle_loader) continue; if(cur_obj->dylinker) continue; if(cur_obj != base_obj){ for(j = 0; j < cur_obj->nsection_maps; j++){ #ifdef RLD if(cur_obj->set_num == cur_set) #endif /* RLD */ { section_type = (cur_obj->section_maps[j].s->flags & SECTION_TYPE); if(section_type == S_REGULAR || section_type == S_SYMBOL_STUBS || section_type == S_NON_LAZY_SYMBOL_POINTERS || section_type == S_LAZY_SYMBOL_POINTERS || section_type == S_COALESCED || section_type == S_MOD_INIT_FUNC_POINTERS || section_type == S_MOD_TERM_FUNC_POINTERS){ output_section(&(cur_obj->section_maps[j])); } } } } output_local_symbols(); #ifdef VM_SYNC_DEACTIVATE vm_msync(mach_task_self(), (vm_address_t)cur_obj->obj_addr, (vm_size_t)cur_obj->obj_size, VM_SYNC_DEACTIVATE); #endif /* VM_SYNC_DEACTIVATE */ } } /* * If there were errors in output_section() then return as so not * to cause later internal errors. */ if(errors != 0) return; #ifdef RLD /* * For each content section clean up the data structures not needed * after rld is run. This must be done after ALL the sections are * output'ed because the fine relocation entries could be used by any * of the sections. */ for(p = &objects; *p; p = &(object_list->next)){ object_list = *p; for(i = 0; i < object_list->used; i++){ cur_obj = &(object_list->object_files[i]); for(j = 0; j < cur_obj->nsection_maps; j++){ if(cur_obj->section_maps[j].nfine_relocs != 0){ free(cur_obj->section_maps[j].fine_relocs); cur_obj->section_maps[j].fine_relocs = NULL; cur_obj->section_maps[j].nfine_relocs = 0; } } if(cur_obj->nundefineds != 0){ free(cur_obj->undefined_maps); cur_obj->undefined_maps = NULL; cur_obj->nundefineds = 0; } } } #endif /* RLD */ /* * Set the SG_NORELOC flag in the segments that had no relocation to * or for them. */ set_SG_NORELOC_flags(); #ifndef SA_RLD /* * Copy the indirect symbol table into the output file. */ output_indirect_symbols(); #endif /* SA_RLD */ /* * Copy the merged symbol table into the output file. */ output_merged_symbols(); /* * Copy the headers into the output file. */ output_headers(); #ifndef RLD if(flush){ /* * Flush the sections that have been scatter loaded. */ flush_scatter_copied_sections(); /* * flush the remaining part of the object file that is not a full * page. */ final_output_flush(); } else{ /* * Write the entire object file. */ if(write(fd, output_addr, output_size) != (int)output_size) system_fatal("can't write output file"); if((r = vm_deallocate(mach_task_self(), (vm_address_t)output_addr, output_size)) != KERN_SUCCESS) mach_fatal(r, "can't vm_deallocate() buffer for output file"); } #ifdef F_NOCACHE /* re-enable caching of file reads/writes */ (void)fcntl(fd, F_NOCACHE, 0); #endif if(close(fd) == -1) system_fatal("can't close output file"); #endif /* RLD */ } #if defined(RLD) && !defined(SA_RLD) /* * pass2_rld_symfile() drives the process to get everything copied into the * buffer for the output file. */ __private_extern__ void pass2_rld_symfile(void) { /* * Copy the merged symbol table into the output file. */ output_rld_symfile_merged_symbols(); /* * Copy the headers into the output file. */ /* first the mach header */ memcpy(output_addr, &output_mach_header, sizeof(struct mach_header)); /* next the symbol table load command */ memcpy(output_addr + sizeof(struct mach_header), &(output_symtab_info.symtab_command), output_symtab_info.symtab_command.cmdsize); } #endif /* defined(RLD) && !defined(SA_RLD) */ /* * create_output_sections_array() creates the output_sections array and fills * it in with the pointers to the merged sections in the output file. This * is used by the relocation routines to set the field 'referenced' in the * merged section structure by indexing this array (directly without subtracting * one from the section number) with the section number of a merged symbol that * is refered to in a relocation entry. */ __private_extern__ void create_output_sections_array(void) { unsigned long i, nsects; struct merged_segment **p, *msg; struct merged_section **content, **zerofill, *ms; nsects = 1; p = &merged_segments; while(*p){ msg = *p; nsects += msg->sg.nsects; p = &(msg->next); } output_sections = (struct merged_section **) allocate(nsects * sizeof(struct merged_section *)); i = 1; p = &merged_segments; while(*p){ msg = *p; content = &(msg->content_sections); while(*content){ ms = *content; output_sections[i++] = ms; content = &(ms->next); } zerofill = &(msg->zerofill_sections); while(*zerofill){ ms = *zerofill; output_sections[i++] = ms; zerofill = &(ms->next); } p = &(msg->next); } } /* * set_SG_NORELOC_flags() sets the SG_NORELOC flag in the segment that have no * relocation to or from them. This uses the fields 'referenced' and * 'relocated' in the merged section structures. The array that was created * by the routine create_output_sections_array() to help set the above * 'referenced' field is deallocated in here. */ static void set_SG_NORELOC_flags(void) { struct merged_segment **p, *msg; struct merged_section **content, **zerofill, *ms; enum bool relocated, referenced; free(output_sections); output_sections = NULL; p = &merged_segments; while(*p){ relocated = FALSE; referenced = FALSE; msg = *p; content = &(msg->content_sections); while(*content){ ms = *content; if(ms->relocated == TRUE) relocated = TRUE; if(ms->referenced == TRUE) referenced = TRUE; content = &(ms->next); } zerofill = &(msg->zerofill_sections); while(*zerofill){ ms = *zerofill; /* a zero fill section can't be relocated */ if(ms->referenced == TRUE) referenced = TRUE; zerofill = &(ms->next); } if(relocated == FALSE && referenced == FALSE) msg->sg.flags |= SG_NORELOC; p = &(msg->next); } } #ifndef RLD /* * setup_output_flush() flushes the gaps between things in the file that are * holes created by alignment. This must stay in lock step with the layout * routine that lays out the file (layout_segments() in layout.c). */ static void setup_output_flush(void) { unsigned long offset; struct merged_segment **p, *msg; struct merged_section **content, *ms; offset = sizeof(struct mach_header) + output_mach_header.sizeofcmds; /* the offsets to the contents of the sections */ p = &merged_segments; while(*p){ msg = *p; content = &(msg->content_sections); while(*content){ ms = *content; if(ms->s.size != 0){ if(ms->s.offset != offset) output_flush(offset, ms->s.offset - offset); offset = ms->s.offset + ms->s.size; } content = &(ms->next); } p = &(msg->next); } /* the offsets to the relocation entries */ p = &merged_segments; while(*p){ msg = *p; content = &(msg->content_sections); while(*content){ ms = *content; if(ms->s.nreloc != 0){ if(ms->s.reloff != offset) output_flush(offset, ms->s.reloff - offset); offset = ms->s.reloff + ms->s.nreloc * sizeof(struct relocation_info); } content = &(ms->next); } p = &(msg->next); } if(output_dysymtab_info.dysymtab_command.nlocrel != 0){ output_flush(offset, output_dysymtab_info.dysymtab_command.locreloff - offset); offset = output_dysymtab_info.dysymtab_command.locreloff + output_dysymtab_info.dysymtab_command.nlocrel * sizeof(struct relocation_info); } if(output_for_dyld){ if(strip_level != STRIP_ALL){ /* the offset to the symbol table */ if(output_symtab_info.symtab_command.symoff != offset) output_flush(offset, output_symtab_info.symtab_command.symoff - offset); offset = output_symtab_info.symtab_command.symoff + output_symtab_info.symtab_command.nsyms * sizeof(struct nlist); } } if(output_for_dyld && twolevel_namespace == TRUE && twolevel_namespace_hints == TRUE){ output_flush(offset, output_hints_info.twolevel_hints_command.offset - offset); offset = output_hints_info.twolevel_hints_command.offset + output_hints_info.twolevel_hints_command.nhints * sizeof(struct twolevel_hint); } if(output_dysymtab_info.dysymtab_command.nextrel != 0){ output_flush(offset, output_dysymtab_info.dysymtab_command.extreloff - offset); offset = output_dysymtab_info.dysymtab_command.extreloff + output_dysymtab_info.dysymtab_command.nextrel * sizeof(struct relocation_info); } /* the offset to the indirect symbol table */ if(output_dysymtab_info.dysymtab_command.nindirectsyms != 0){ if(output_dysymtab_info.dysymtab_command.indirectsymoff != offset) output_flush(offset, output_dysymtab_info. dysymtab_command.indirectsymoff - offset); offset = output_dysymtab_info.dysymtab_command.indirectsymoff + output_dysymtab_info.dysymtab_command.nindirectsyms * sizeof(unsigned long); } #ifndef RLD /* the offset to the dylib table of contents */ if(output_dysymtab_info.dysymtab_command.ntoc != 0){ if(output_dysymtab_info.dysymtab_command.tocoff != offset) output_flush(offset, output_dysymtab_info. dysymtab_command.tocoff - offset); offset = output_dysymtab_info.dysymtab_command.tocoff + output_dysymtab_info.dysymtab_command.ntoc * sizeof(struct dylib_table_of_contents); } /* the offset to the dylib module table */ if(output_dysymtab_info.dysymtab_command.nmodtab != 0){ if(output_dysymtab_info.dysymtab_command.modtaboff != offset) output_flush(offset, output_dysymtab_info. dysymtab_command.modtaboff - offset); offset = output_dysymtab_info.dysymtab_command.modtaboff + output_dysymtab_info.dysymtab_command.nmodtab * sizeof(struct dylib_module); } /* the offset to the dylib reference table */ if(output_dysymtab_info.dysymtab_command.nextrefsyms != 0){ if(output_dysymtab_info.dysymtab_command.extrefsymoff != offset) output_flush(offset, output_dysymtab_info. dysymtab_command.extrefsymoff - offset); offset = output_dysymtab_info.dysymtab_command.extrefsymoff + output_dysymtab_info.dysymtab_command.nextrefsyms * sizeof(struct dylib_reference); } #endif /* !defined(RLD) */ if(output_for_dyld == FALSE){ if(strip_level != STRIP_ALL){ /* the offset to the symbol table */ if(output_symtab_info.symtab_command.symoff != offset) output_flush(offset, output_symtab_info.symtab_command.symoff - offset); offset = output_symtab_info.symtab_command.symoff + output_symtab_info.symtab_command.nsyms * sizeof(struct nlist); } } if(strip_level != STRIP_ALL){ /* the offset to the string table */ /* * This is flushed to output_symtab_info.symtab_command.stroff plus * output_symtab_info.output_merged_strsize and not just to * output_symtab_info.symtab_command.stroff because the first byte * can't be used to store a string because a symbol with a string * offset of zero (nlist.n_un.n_strx == 0) is defined to be a symbol * with a null name "". So this byte(s) have to be flushed. */ if(output_symtab_info.symtab_command.stroff + output_symtab_info.output_merged_strsize != offset) output_flush(offset, output_symtab_info.symtab_command.stroff + output_symtab_info.output_merged_strsize - offset); /* flush the string table pad if any */ if(output_symtab_info.output_strpad != 0){ output_flush(output_symtab_info.symtab_command.stroff + output_symtab_info.symtab_command.strsize - output_symtab_info.output_strpad, output_symtab_info.output_strpad); } offset = output_symtab_info.symtab_command.stroff + output_symtab_info.symtab_command.strsize; } /* the offset to the end of the file */ if(offset != output_size) output_flush(offset, output_size - offset); } /* * output_flush() takes an offset and a size of part of the output file, known * in the comments as the new area, and causes any fully flushed pages to be * written to the output file the new area in combination with previous areas * creates. The data structure output_blocks has ordered blocks of areas that * have been flushed which are maintained by this routine. Any area can only * be flushed once and an error will result is the new area overlaps with a * previously flushed area. * * The goal of this is to again minimize the number of dirty pages the link * editor has and hopfully improve performance in a memory starved system and * to prevent these pages to be written to the swap area when they could just be * written to the output file (if only external pagers worked well ...). */ __private_extern__ void output_flush( unsigned long offset, unsigned long size) { unsigned long write_offset, write_size; struct block **p, *block, *before, *after; kern_return_t r; if(flush == FALSE) return; /* if(offset == 588824 && size != 0) printf("in output_flush() offset = %lu size = %lu\n", offset, size); */ if(offset + size > output_size) fatal("internal error: output_flush(offset = %lu, size = %lu) out " "of range for output_size = %lu", offset, size, output_size); #ifdef DEBUG if(debug & (1 << 12)) print_block_list(); if(debug & (1 << 11)) print("output_flush(offset = %lu, size %lu)", offset, size); #endif /* DEBUG */ if(size == 0){ #ifdef DEBUG if(debug & (1 << 11)) print("\n"); #endif /* DEBUG */ return; } /* * Search through the ordered output blocks to find the block before the * new area and after the new area if any exist. */ before = NULL; after = NULL; p = &(output_blocks); while(*p){ block = *p; if(offset < block->offset){ after = block; break; } else{ before = block; } p = &(block->next); } /* * Check for overlap of the new area with the block before and after the * new area if there are such blocks. */ if(before != NULL){ if(before->offset + before->size > offset){ warning("internal error: output_flush(offset = %lu, size = %lu) " "overlaps with flushed block(offset = %lu, size = %lu)", offset, size, before->offset, before->size); printf("calling abort()\n"); abort(); } } if(after != NULL){ if(offset + size > after->offset){ warning("internal error: output_flush(offset = %lu, size = %lu) " "overlaps with flushed block(offset = %lu, size = %lu)", offset, size, after->offset, after->size); printf("calling abort()\n"); abort(); } } /* * Now see how the new area fits in with the blocks before and after it * (that is does it touch both, one or the other or neither blocks). * For each case first the offset and size to write (write_offset and * write_size) are set for the area of full pages that can now be * written from the block. Then the area written in the block * (->written_offset and ->written_size) are set to reflect the total * area in the block now written. Then offset and size the block * refers to (->offset and ->size) are set to total area of the block. * Finally the links to others blocks in the list are adjusted if a * block is added or removed. * * See if there is a block before the new area and the new area * starts at the end of that block. */ if(before != NULL && before->offset + before->size == offset){ /* * See if there is also a block after the new area and the new area * ends at the start of that block. */ if(after != NULL && offset + size == after->offset){ /* * This is the case where the new area exactly fill the area * between two existing blocks. The total area is folded into * the block before the new area and the block after the new * area is removed from the list. */ if(before->offset == 0 && before->written_size == 0){ write_offset = 0; before->written_offset = 0; } else write_offset =before->written_offset + before->written_size; if(after->written_size == 0) write_size = trunc(after->offset + after->size - write_offset, host_pagesize); else write_size = trunc(after->written_offset - write_offset, host_pagesize); if(write_size != 0){ before->written_size += write_size; } if(after->written_size != 0) before->written_size += after->written_size; before->size += size + after->size; /* remove the block after the new area */ before->next = after->next; remove_block(after); } else{ /* * This is the case where the new area starts at the end of the * block just before it but does not end where the block after * it (if any) starts. The new area is folded into the block * before the new area. */ write_offset = before->written_offset + before->written_size; write_size = trunc(offset + size - write_offset, host_pagesize); if(write_size != 0) before->written_size += write_size; before->size += size; } } /* * See if the new area and the new area ends at the start of the block * after it (if any). */ else if(after != NULL && offset + size == after->offset){ /* * This is the case where the new area ends at the begining of the * block just after it but does not start where the block before it. * (if any) ends. The new area is folded into this block after the * new area. */ write_offset = round(offset, host_pagesize); if(after->written_size == 0) write_size = trunc(after->offset + after->size - write_offset, host_pagesize); else write_size = trunc(after->written_offset - write_offset, host_pagesize); if(write_size != 0){ after->written_offset = write_offset; after->written_size += write_size; } else if(write_offset != after->written_offset){ after->written_offset = write_offset; } after->offset = offset; after->size += size; } else{ /* * This is the case where the new area neither starts at the end of * the block just before it (if any) or ends where the block after * it (if any) starts. A new block is created and the new area is * is placed in it. */ write_offset = round(offset, host_pagesize); write_size = trunc(offset + size - write_offset, host_pagesize); block = get_block(); block->offset = offset; block->size = size; block->written_offset = write_offset; block->written_size = write_size; /* * Insert this block in the ordered list in the correct place. */ if(before != NULL){ block->next = before->next; before->next = block; } else{ block->next = output_blocks; output_blocks = block; } } /* * Now if there are full pages to write write them to the output file. */ if(write_size != 0){ #ifdef DEBUG if((debug & (1 << 11)) || (debug & (1 << 10))) print(" writing (write_offset = %lu write_size = %lu)\n", write_offset, write_size); #endif /* DEBUG */ lseek(fd, write_offset, L_SET); if(write(fd, output_addr + write_offset, write_size) != (int)write_size) system_fatal("can't write to output file"); if((r = vm_deallocate(mach_task_self(), (vm_address_t)(output_addr + write_offset), write_size)) != KERN_SUCCESS) mach_fatal(r, "can't vm_deallocate() buffer for output file"); } #ifdef DEBUG else{ if(debug & (1 << 11)) print(" no write\n"); } #endif /* DEBUG */ } /* * final_output_flush() flushes the last part of the last page of the object * file if it does not round out to exactly a page. */ static void final_output_flush(void) { struct block *block; unsigned long write_offset, write_size; kern_return_t r; #ifdef DEBUG /* The compiler "warning: `write_offset' may be used uninitialized in */ /* this function" can safely be ignored */ write_offset = 0; if((debug & (1 << 11)) || (debug & (1 << 10))){ print("final_output_flush block_list:\n"); print_block_list(); } #endif /* DEBUG */ write_size = 0; block = output_blocks; if(block != NULL){ if(block->offset != 0) fatal("internal error: first block not at offset 0"); if(block->written_size != 0){ if(block->written_offset != 0) fatal("internal error: first block written_offset not 0"); write_offset = block->written_size; write_size = block->size - block->written_size; } else{ write_offset = block->offset; write_size = block->size; } if(block->next != NULL) fatal("internal error: more than one block in final list"); } if(write_size != 0){ #ifdef DEBUG if((debug & (1 << 11)) || (debug & (1 << 10))) print(" writing (write_offset = %lu write_size = %lu)\n", write_offset, write_size); #endif /* DEBUG */ lseek(fd, write_offset, L_SET); if(write(fd, output_addr + write_offset, write_size) != (int)write_size) system_fatal("can't write to output file"); if((r = vm_deallocate(mach_task_self(), (vm_address_t)(output_addr + write_offset), write_size)) != KERN_SUCCESS) mach_fatal(r, "can't vm_deallocate() buffer for output file"); } } #ifdef DEBUG /* * print_block_list() prints the list of blocks. Used for debugging. */ static void print_block_list(void) { struct block **p, *block; p = &(output_blocks); if(*p == NULL) print("Empty block list\n"); while(*p){ block = *p; print("block 0x%x\n", (unsigned int)block); print(" offset %lu\n", block->offset); print(" size %lu\n", block->size); print(" written_offset %lu\n", block->written_offset); print(" written_size %lu\n", block->written_size); print(" next 0x%x\n", (unsigned int)(block->next)); p = &(block->next); } } #endif /* DEBUG */ /* * get_block() returns a pointer to a new block. This could be done by * allocating block of these placing them on a free list and and handing them * out. The maximum number of blocks needed would be one for each content * section, one for each section that has relocation entries (if saving them) * and one for the symbol and string table. For the initial release of this * code this number is typicly around 8 it is not a big win so each block is * just allocated and free'ed. */ static struct block * get_block(void) { struct block *block; block = allocate(sizeof(struct block)); return(block); } /* * remove_block() throws away the block specified. See comments in get_block(). */ static void remove_block( struct block *block) { free(block); } /* * trunc() truncates the value 'v' to the power of two value 'r'. If v is * less than zero it returns zero. */ static unsigned long trunc( unsigned long v, unsigned long r) { if(((long)v) < 0) return(0); return(v & ~(r - 1)); } #endif /* !defined(RLD) */ /* * output_headers() copys the headers of the object file into the buffer for * the output file. */ static void output_headers(void) { unsigned long header_offset; struct merged_segment **p, *msg; struct merged_section **content, **zerofill, *ms; #ifndef RLD unsigned long i; struct merged_fvmlib **q, *mfl; struct dylinker_command *dyld; struct merged_dylib *mdl; struct dylib_command *dl; struct dynamic_library *dp; enum bool some_symbols_referenced, some_non_weak_refs; #endif /* !defined(RLD) */ struct mach_header *mh; struct load_command *lc; header_offset = 0; /* first the mach header */ mh = (struct mach_header *)output_addr; memcpy(mh, &output_mach_header, sizeof(struct mach_header)); header_offset += sizeof(struct mach_header); lc = (struct load_command *)(output_addr + header_offset); /* next the segment load commands (and section structures) */ p = &merged_segments; while(*p){ msg = *p; memcpy(output_addr + header_offset, &(msg->sg), sizeof(struct segment_command)); header_offset += sizeof(struct segment_command); content = &(msg->content_sections); while(*content){ ms = *content; memcpy(output_addr + header_offset, &(ms->s), sizeof(struct section)); header_offset += sizeof(struct section); content = &(ms->next); } zerofill = &(msg->zerofill_sections); while(*zerofill){ ms = *zerofill; memcpy(output_addr + header_offset, &(ms->s), sizeof(struct section)); header_offset += sizeof(struct section); zerofill = &(ms->next); } p = &(msg->next); } #ifndef RLD /* next the fixed VM shared library load commands */ q = &merged_fvmlibs; while(*q){ mfl = *q; memcpy(output_addr + header_offset, mfl->fl, mfl->fl->cmdsize); header_offset += mfl->fl->cmdsize; q = &(mfl->next); } /* next the dynamic linker load command */ if(merged_dylinker != NULL){ memcpy(output_addr + header_offset, merged_dylinker->dyld, merged_dylinker->dyld->cmdsize); if(filetype != MH_DYLINKER){ dyld = (struct dylinker_command *)(output_addr + header_offset); dyld->cmd = LC_LOAD_DYLINKER; } header_offset += merged_dylinker->dyld->cmdsize; } /* next the dynamicly linked shared library load commands */ mdl = merged_dylibs; while(mdl != NULL){ memcpy(output_addr + header_offset, mdl->dl, mdl->dl->cmdsize); if(mdl->output_id == FALSE){ dl = (struct dylib_command *)(output_addr + header_offset); /* * Propagate the some_non_weak_refs and some_non_weak_refs * booleans up through the sub images for this dylib. */ some_symbols_referenced = mdl->dynamic_library->some_symbols_referenced; some_non_weak_refs = mdl->dynamic_library->some_non_weak_refs; for(i = 0; i < mdl->dynamic_library->nsub_images; i++){ if(mdl->dynamic_library->sub_images[i]-> some_symbols_referenced == TRUE){ some_symbols_referenced = TRUE; if(mdl->dynamic_library->sub_images[i]-> some_non_weak_refs == TRUE) some_non_weak_refs = TRUE; } } if((some_symbols_referenced == TRUE && some_non_weak_refs == FALSE) || mdl->dynamic_library->force_weak_dylib == TRUE){ if(macosx_deployment_target >= MACOSX_DEPLOYMENT_TARGET_10_2){ dl->cmd = LC_LOAD_WEAK_DYLIB; } else{ warning("dynamic shared library: %s not made a weak " "library in output with " "MACOSX_DEPLOYMENT_TARGET environment variable " "set to: %s", mdl->definition_object->file_name, macosx_deployment_target_name); dl->cmd = LC_LOAD_DYLIB; } } else dl->cmd = LC_LOAD_DYLIB; } header_offset += mdl->dl->cmdsize; mdl = mdl->next; } /* next the sub framework load command */ if(merged_sub_framework != NULL){ memcpy(output_addr + header_offset, merged_sub_framework->sub, merged_sub_framework->sub->cmdsize); header_offset += merged_sub_framework->sub->cmdsize; } /* next the sub umbrella load commands */ for(i = 0; i < nsub_umbrellas ; i++){ memcpy(output_addr + header_offset, merged_sub_umbrellas[i].sub, merged_sub_umbrellas[i].sub->cmdsize); header_offset += merged_sub_umbrellas[i].sub->cmdsize; } /* next the sub library load commands */ for(i = 0; i < nsub_librarys ; i++){ memcpy(output_addr + header_offset, merged_sub_librarys[i].sub, merged_sub_librarys[i].sub->cmdsize); header_offset += merged_sub_librarys[i].sub->cmdsize; } /* next the sub client load commands */ for(i = 0; i < nallowable_clients ; i++){ memcpy(output_addr + header_offset, merged_sub_clients[i].sub, merged_sub_clients[i].sub->cmdsize); header_offset += merged_sub_clients[i].sub->cmdsize; } /* next the prebound dynamic libraries load commands */ if(filetype == MH_EXECUTE){ for(dp = dynamic_libs; dp != NULL; dp = dp->next){ if(dp->type == DYLIB){ if(dp->pbdylib != NULL){ memcpy(output_addr + header_offset, dp->pbdylib, dp->pbdylib->cmdsize); header_offset += dp->pbdylib->cmdsize; } } } } #endif /* !defined(RLD) */ /* next the symbol table load command */ memcpy(output_addr + header_offset, &(output_symtab_info.symtab_command), output_symtab_info.symtab_command.cmdsize); header_offset += output_symtab_info.symtab_command.cmdsize; /* next the dysymbol table load command */ if(nindirectsyms != 0 || output_for_dyld){ memcpy(output_addr + header_offset, &(output_dysymtab_info.dysymtab_command), output_dysymtab_info.dysymtab_command.cmdsize); header_offset += output_dysymtab_info.dysymtab_command.cmdsize; } /* next the two-level namespace hints load command */ if(output_for_dyld && twolevel_namespace == TRUE && twolevel_namespace_hints == TRUE){ memcpy(output_addr + header_offset, &(output_hints_info.twolevel_hints_command), output_hints_info.twolevel_hints_command.cmdsize); header_offset += output_hints_info.twolevel_hints_command.cmdsize; } /* next the prebind cksum load command */ if(output_cksum_info.prebind_cksum_command.cmdsize != 0){ memcpy(output_addr + header_offset, &(output_cksum_info.prebind_cksum_command), output_cksum_info.prebind_cksum_command.cmdsize); header_offset += output_cksum_info.prebind_cksum_command.cmdsize; } /* next the thread command if the output file has one */ if(output_thread_info.thread_in_output == TRUE){ /* the thread command itself */ memcpy(output_addr + header_offset, &(output_thread_info.thread_command), sizeof(struct thread_command)); header_offset += sizeof(struct thread_command); /* the flavor of the thread state */ memcpy(output_addr + header_offset, &(output_thread_info.flavor), sizeof(long)); header_offset += sizeof(long); /* the count of longs of the thread state */ memcpy(output_addr + header_offset, &(output_thread_info.count), sizeof(long)); header_offset += sizeof(long); /* the thread state */ memcpy(output_addr + header_offset, output_thread_info.state, output_thread_info.count * sizeof(long)); header_offset += output_thread_info.count * sizeof(long); /* the second thread state if any */ if(output_thread_info.second_count != 0){ /* the flavor of the second thread state */ memcpy(output_addr + header_offset, &(output_thread_info.second_flavor), sizeof(long)); header_offset += sizeof(long); /* the count of longs of the second thread state */ memcpy(output_addr + header_offset, &(output_thread_info.second_count), sizeof(long)); header_offset += sizeof(long); /* the second thread state */ memcpy(output_addr + header_offset, output_thread_info.second_state, output_thread_info.second_count * sizeof(long)); header_offset += output_thread_info.second_count * sizeof(long); } } /* next the routines command if the output file has one */ if(output_routines_info.routines_in_output == TRUE){ memcpy(output_addr + header_offset, &(output_routines_info.routines_command), sizeof(struct routines_command)); header_offset += sizeof(struct routines_command); } if(host_byte_sex != target_byte_sex) if(swap_object_headers(mh, lc) == FALSE) fatal("internal error: swap_object_headers() failed in " "output_headers()"); #ifndef RLD output_flush(0, sizeof(struct mach_header) + output_mach_header.sizeofcmds); #endif /* !defined(RLD) */ }


markdown:
[Vợ chồng Lý Thanh Thảo hạnh phúc đưa hai con đi du xuân](/tin-tuc/vo-chong-ly-thanh-thao-hanh-phuc-dua-hai-con-di-du-xuan/6c-1602sc-854650n.html)
- 1
- 2
- 3
- 4
- 5
NÓNG TRONG NGÀY
- 1
- 2
- 3
- 4
- 5
- 6
- 7
[Hoa hậu Kỳ Duyên tiết lộ kế hoạch Nam tiến](/tin-tuc/hoa-hau-ky-duyen-tiet-lo-ke-hoach-nam-tien/6c-1602sc-854648n.html) [Sao Việt nào mặc chụp đèn đẹp nhất?](/tin-tuc/sao-viet-nao-mac-chup-den-dep-nhat/6c-1602sc-854649n.html) [Hương Tràm tình tứ cùng Quang Hà trên phố xuân](/tin-tuc/huong-tram-tinh-tu-cung-quang-ha-tren-pho-xuan/6c-1602sc-854651n.html) [Diva Hồng Nhung đến nhà Hoa hậu Hà Kiều Anh dịp Tết](/tin-tuc/diva-hong-nhung-den-nha-hoa-hau-ha-kieu-anh-dip-tet/6c-1602sc-854656n.html) [Victoria Beckham khéo che thân hình 'cò hương' bằng bộ đồ 'chất lừ'](/tin-tuc/victoria-beckham-kheo-che-than-hinh-co-huong-bang-bo-do-chat-lu/6c-1602sc-854661n.html) [Lộ ảnh Trường Giang 'ngoại tình' với Angela Phương Trinh](/tin-tuc/lo-anh-truong-giang-ngoai-tinh-voi-angela-phuong-trinh/6c-1602sc-854654n.html) [Diva Hồng Nhung đến nhà Hoa hậu Hà Kiều Anh dịp Tết](/tin-tuc/diva-hong-nhung-den-nha-hoa-hau-ha-kieu-anh-dip-tet/6c-1602sc-854656n.html) [Hương Tràm tình tứ cùng Quang Hà trên phố xuân](/tin-tuc/huong-tram-tinh-tu-cung-quang-ha-tren-pho-xuan/6c-1602sc-854651n.html) [Sao nữ nước Anh 'sượng sùng' vì ngã 'chỏng vó'](/tin-tuc/sao-nu-nuoc-anh-suong-sung-vi-nga-chong-vo/6c-1602sc-854630n.html) [Lộ ảnh Trường Giang 'ngoại tình' với Angela Phương Trinh](/tin-tuc/lo-anh-truong-giang-ngoai-tinh-voi-angela-phuong-trinh/6c-1602sc-854654n.html) [Những câu nói "bá đạo trên từng hạt gạo" của Táo quân 2016](/tin-tuc/nhung-cau-noi-ba-dao-tren-tung-hat-gao-cua-tao-quan-2016/6c-1602sc-854664n.html)
Sao Việt 24h qua
[Gần 2.000 ca nhập viện trong 3 ngày Tết vì... đánh nhau](/tin-tuc/gan-2000-ca-nhap-vien-trong-3-ngay-tet-vi-danh-nhau/5c-3404sc-854642n.html) [Tiếng đàn gọi tình độc đáo ngày xuân của tộc người Chứt](/tin-tuc/tieng-dan-goi-tinh-doc-dao-ngay-xuan-cua-toc-nguoi-chut/5c-3404sc-854632n.html) [Thời tiết 10-14/2: Nam Bộ tiếp tục mát mẻ, miền Bắc ấm lên](/tin-tuc/thoi-tiet-10-142-nam-bo-tiep-tuc-mat-me-mien-bac-am-len/5c-3404sc-854633n.html) [Mỹ lo ngại nguy cơ xảy ra cuộc Chiến tranh Lạnh mới với Nga](/tin-tuc/my-lo-ngai-nguy-co-xay-ra-cuoc-chien-tranh-lanh-moi-voi-nga/5c-3404sc-854634n.html) [Giới trẻ thế giới rộ trào lưu nhuộm tóc phát quang](/tin-tuc/gioi-tre-the-gioi-ro-trao-luu-nhuom-toc-phat-quang/5c-3404sc-854675n.html) [Lễ hóa vàng, văn khấn hóa vàng sau mùng 3 Tết: Cúng sao cho ‘chuẩn’?](/tin-tuc/le-hoa-vang-van-khan-hoa-vang-sau-mung-3-tet-cung-sao-cho-chuan/13c-2321sc-854556n.html) [12 chùa cầu may, tài lộc, cầu duyên linh thiêng nên đi đầu năm](/tin-tuc/12-chua-cau-may-tai-loc-cau-duyen-linh-thieng-nen-di-dau-nam/13c-2321sc-854557n.html) [Bi kịch hôn nhân cay đắng của người đàn bà 'đẹp người xấu nết'](/tin-tuc/bi-kich-hon-nhan-cay-dang-cua-nguoi-dan-ba-dep-nguoi-xau-net/13c-2321sc-854553n.html) [Mất Tết vì bị bạn thân lừa trắng trợn](/tin-tuc/mat-tet-vi-bi-ban-than-lua-trang-tron/13c-2321sc-854526n.html) [Chọn tuổi xông nhà cho tuổi khắc năm Bính Thân 2016 là tuổi nào?](/tin-tuc/chon-tuoi-xong-nha-cho-tuoi-khac-nam-binh-than-2016-la-tuoi-nao/13c-2321sc-854475n.html) [Bí kíp đơn giản giúp người phụ nữ nghèo chiến thắng ung thư vú](/tin-tuc/bi-kip-don-gian-giup-nguoi-phu-nu-ngheo-chien-thang-ung-thu-vu/10c-17912sc-854575n.html) [Những đồ ăn, đồ uống ngày Tết tuyệt đối kỵ dùng với thuốc](/tin-tuc/nhung-do-an-do-uong-ngay-tet-tuyet-doi-ky-dung-voi-thuoc/10c-17912sc-854576n.html) [Điểm tựa gia đình giúp người phụ nữ nghèo chiến thắng bệnh ung thư](/tin-tuc/diem-tua-gia-dinh-giup-nguoi-phu-nu-ngheo-chien-thang-benh-ung-thu/10c-17912sc-854558n.html) [Hướng dẫn chẩn đoán và điều trị bệnh do virus Zika](/tin-tuc/huong-dan-chan-doan-va-dieu-tri-benh-do-virus-zika/10c-17912sc-854547n.html) [Những tai nạn thường gặp ở trẻ em vào những ngày Tết](/tin-tuc/nhung-tai-nan-thuong-gap-o-tre-em-vao-nhung-ngay-tet/10c-17912sc-854528n.html) [Mẹo nhận biết gà ta, gà tẩm bột sắt, gà thải loại TQ](/tin-tuc/meo-nhan-biet-ga-ta-ga-tam-bot-sat-ga-thai-loai-tq/28c-17957sc-853938n.html) [Viet Capital Bank được cấp phép mở thêm 10 Chi nhánh và Phòng giao dịch](/tin-tuc/viet-capital-bank-duoc-cap-phep-mo-them-10-chi-nhanh-va-phong-giao-dich/28c-17957sc-853867n.html) [Viet Capital Bank sẵn sàng nguồn tiền ATM phục vụ Tết Bính Thân](/tin-tuc/viet-capital-bank-san-sang-nguon-tien-atm-phuc-vu-tet-binh-than/28c-17957sc-853854n.html) [Thu giữ hàng nghìn chai rượu ngoại không rõ nguồn gốc](/tin-tuc/thu-giu-hang-nghin-chai-ruou-ngoai-khong-ro-nguon-goc/28c-17957sc-853709n.html) [Trữ 120 khẩu súng trong quán tạp hóa để bán dịp Tết](/tin-tuc/tru-120-khau-sung-trong-quan-tap-hoa-de-ban-dip-tet/28c-17957sc-853607n.html) [Lưu Hương Giang và 5 gợi ý quà Tết dành tặng người thân Xuân 2016](/tin-tuc/luu-huong-giang-va-5-goi-y-qua-tet-danh-tang-nguoi-than-xuan-2016/7c-3037sc-852842n.html) [10 điều các ông bố trẻ cần hiểu rõ về bà xã mới sinh của mình](/tin-tuc/10-dieu-cac-ong-bo-tre-can-hieu-ro-ve-ba-xa-moi-sinh-cua-minh/7c-2904sc-852724n.html) [Sai lầm cần tuyệt đối tránh khi chăm sóc trẻ trong ngày lạnh](/tin-tuc/sai-lam-can-tuyet-doi-tranh-khi-cham-soc-tre-trong-ngay-lanh/7c-2904sc-852545n.html) [Nhiều bà mẹ trẻ tìm cách cho con ăn dặm kiểu Nhật](/tin-tuc/nhieu-ba-me-tre-tim-cach-cho-con-an-dam-kieu-nhat/7c-2904sc-852232n.html) [Tuyệt chiêu xử lý trẻ ăn vạ hiệu quả](/tin-tuc/tuyet-chieu-xu-ly-tre-an-va-hieu-qua/7c-2904sc-852034n.html)
Blog Tiêu dùng

WARC-Type: response

Content-Type: application/http; msgtype=response

Cache-Control: public, max-age=84

Content-Type: text/html; charset=utf-8

Connection: close


markdown:
### web hay tham khảo
-
### Thông tin doanh nghiệp
-
[Làng chiếu Cẩm Nê Đà Nẵng, nỗi lo và những thăng trầm](http://www.sigb.org.vn/blog/lang-chieu-ca%cc%89m-ne-da-na%cc%83ng-no%cc%83i-lo-va-nhu%cc%83ng-thang-tram.html)Đi du lịch Đà Nẵng, ai ai cũng háo hức hành trình tham quan Bà Nà, dạo bãi biển Mỹ Khê, mà thực sự không để
-
[Giới thiệu các kiểu dáng đầm đi biển duyên dáng – thời trang cho bé gái](http://www.sigb.org.vn/blog/gioi-thieu-cac-kieu-dang-dam-di-bien-duyen-dang-thoi-trang-cho-be-gai.html)Nhắc đến mặt hàng thời trang đi biển của trẻ, chúng ta không thể không nhớ tới các mẫu đầm váy đẹp cho bé gái. Những
-
[Chợ nổi Cái Răng – Khám phá nét đẹp miền Tây](http://www.sigb.org.vn/blog/cho-noi-cai-rang-kham-pha-net-dep-mien-tay.html)Các công ty du lịch Cần Thơ, hầu như đều có những hành trình sinh động khám phá vẻ đẹp chợ nổi Cái Răng dành cho
-
[Biến iPhone 6s phiên bản 16 GB thành phiên bản 128 GB chỉ với chưa đến 2 triệu đồng.](http://www.sigb.org.vn/blog/bien-iphone-6s-phien-ban-16-gb-thanh-phien-ban-128-gb-chi-voi-chua-den-2-trieu-dong.html)Việc Apple giữ lại bản 16GB đã làm các fan nhà táo rất thất vọng, nhưng không sao hết, các thương gia trung quốc cũng đã
-
[Cách phân biệt tai nghe iPhone thật và giả cực đơn giản](http://www.sigb.org.vn/thuong-hieu/cach-phan-biet-tai-nghe-iphone-that-va-gia-cuc-don-gian.html)Apple là một thương hiệu đình đám không riêng gì ở Việt Nam mà còn ở thị trường thế giới. Vì vậy, hàng nhái, hàng dựng
-
[Những điểm tham quan ở Đà Lạt theo dòng thời gian](http://www.sigb.org.vn/blog/nhung-diem-tham-quan-o-da-lat-theo-dong-thoi-gian.html)Nhiều du khách xem Đà Lạt như quê hương thứ hai khi rất yêu mến cảnh quan và khí hậu ở nơi này. Với họ các
-
[Cách chặn cuộc gọi và tin nhắn ngoài danh bạ trên iPhone](http://www.sigb.org.vn/thuong-hieu/cach-chan-cuoc-goi-va-tin-nhan-ngoai-danh-ba-tren-iphone.html)Đối với iPhone, chặn cuộc gọi và tin nhắn là 1, tức là nó sẽ gộp chung lại chặn hẳn thuê bao đó, bạn chỉ cần
-
[Giới thiệu 3 mẫu áo thun xuân hè thời trang cho bé trai 1-7 tuổi](http://www.sigb.org.vn/blog/gioi-thieu-3-mau-ao-thun-xuan-he-thoi-trang-cho-be-trai-1-7-tuoi.html)Nói đến thiết kế quần áo bé trai, áo thun luôn là vật phẩm thời trang không thể thiếu của các cu cậu hiếu động, thích
-
[Khu du lịch Con Sẻ Tre – nơi bình yên cho những kỳ nghỉ biển tuyệt vời](http://www.sigb.org.vn/blog/khu-du-lich-con-se-tre-noi-binh-yen-cho-nhung-ky-nghi-bien-tuyet-voi.html)Trong khoảng 3 năm trở lại đây nói đến du lịch Nha Trang, dường như ai cũng rất chú tâm vào các hành trình tour Nha
-
[Những lý do lý giải việc iPhone luôn mãi là smartphone tốt nhất đối với giới công nghệ thế giới](http://www.sigb.org.vn/blog/nhung-ly-do-ly-giai-viec-iphone-luon-mai-la-smartphone-tot-nhat-doi-voi-gioi-cong-nghe-the-gioi.html)Theo những gì mà Drrell Etherington – phóng viên của tờ báo TechCrunh nhận xét trong quá trình làm việc của mình thì các nhà sản
-
[Samsung sẽ cho ra mắt mẫu smartphone có màn hình gập đầu tiên trên thế giới vào đầu năm 2016?](http://www.sigb.org.vn/blog/samsung-se-cho-ra-mat-mau-smartphone-co-man-hinh-gap-dau-tien-tren-the-gioi-vao-dau-nam-2016.html)Vào những tháng đầu tiên của năm 2015, Samsung đã tự tin tuyên bố rằng bản thân công ty này đang phát triển 1 mẫu smartphone
-
[Làm sao để nhận biết quần áo trẻ em xuất khẩu xịn và nhái?](http://www.sigb.org.vn/blog/lam-sao-de-nhan-biet-quan-ao-tre-em-xuat-khau-xin-va-nhai.html)Thời gian gần đây mặt hàng quần áo trẻ em Việt Nam xuất khẩu (VNXK) đang thu hút sự chú ý của nhiều bà mẹ. Chính
-
[Mẹo xóa danh bạ facebook trên iPhone nhanh chóng](http://www.sigb.org.vn/thuong-hieu/meo-xoa-danh-ba-facebook-tren-iphone-nhanh-chong.html)Tỉ lệ người sử dụng smartphone đã dùng qua ứng dụng Facebook là rất cao, tuy nhiên có rất nhiều tính năng mới mà người dùng
-
[Cáp treo Vinpearland Nha Trang – Điểm đến hấp dẫn ở Nha Trang](http://www.sigb.org.vn/blog/cap-treo-vinpearland-nha-trang-diem-den-hap-dan-o-nha-trang.html)Với du khách yêu thích các hành trình đến với biển cả, dường như đa phần đều đã từng có những dịp đi tour Nha Trang,
-
[Bảo vệ thương hiệu: “Cuộc chiến” gian truân](http://www.sigb.org.vn/thuong-hieu/bao-ve-thuong-hieu-cuoc-chien-gian-truan.html)Nạn hàng giả, hàng nhái ngày càng diễn biến phức tạp, gia tăng về số vụ vi phạm, đa dạng về chủng loại… gây hậu quả
-

Server: nginx

Vary: Accept-Encoding,User-Agent

Content-Type: text/html; charset=UTF-8


markdown:
Chủ đề :Thư pháp Chất liệu tranh: VảiNguyên liệu thể hiện: Chỉ thêu Kích thước : 115 x 52 cmGiá Bán : Liên [ … ]
Chủ đề :Thư pháp Chất liệu tranh :VảiNguyên liệu thể hiện : Chỉ thêu Kích thước : 110 * 51 cmGiá Bán : Liên [ … ]
Chủ đề: Thư pháp Chất liệu tranh: VảiNguyên liệu thể hiện : Chỉ thêu Kích thước: 30 * 55 cmGiá Bán : Liên [ … ]
Chủ đề : Thư pháp Chất liệu tranh : VảiNguyên liệu thể hiện : Chỉ thêu Kích thước: 102cm*55cmGiá Bán : Liên [ … ]

WARC-Truncated: length

Set-Cookie: ja_sanidineii_light_tpl=ja_sanidineii_light; expires=Mon, 30-Jan-2017 08:34:21 GMT; Max-Age=30672000; path=/

Cache-Control: post-check=0, pre-check=0

Pragma: no-cache

X-Content-Encoded-By: Joomla! 1.5

Vary: User-Agent

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"


markdown:
Gian hàng bán
Rao vặt
Hỏi đáp
Đánh giá sản phẩm
Thêm
Danh sách gian hàng
Tin tức từ Vatgia.com
Để kinh doanh Online thành công
BaoKim.vn
Nhanh.vn
WebBNC.net
Ứng dụng
Thông báo
Hỗ trợ
Đăng ký
Đăng ký thành viên
Đăng ký gian hàng
Đăng nhập
Hoặc đăng nhập bằng
Nhớ mật khẩu
Quên mật khẩu?
Sản phẩm
Sản phẩm
Rao vặt
Hỏi đáp
Cửa hàng
Tìm trong danh mục
Camera giám sát
Camera IP
Chương trình quản lý (Soft Manager)
Cổng từ dò kim loại
Cổng từ kiểm soát ra vào
Hệ thống camera giám sát
Hệ thống thuyết minh tự động
Két sắt, két bạc
Khóa
Khóa cửa bằng vân tay
Khóa cửa sử dụng thẻ từ
Khóa điện tử
Màn hình cho camera giám sát
Máy giám sát bảo vệ
Phụ kiện camera giám sát
Phụ kiện khóa điện tử
Thiết bị báo động chống trộm
Thiết bị gọi phục vụ, thanh toán
Thiết bị kiểm soát ra vào
Thiết bị quan sát chuyên dụng
Đầu ghi hình cho camera giám sát
Trang chủ
>
Hàng công nghệ
>
Điện tử, điện máy
>
Thiết bị an ninh
>
Khóa cửa sử dụng thẻ từ
>
Khoá khách sạn dùng thẻ RF
Khoá khách sạn dùng thẻ RF
Thích sản phẩm này
0.0
/
0
đánh giá
Đánh giá
Lịch sử giá
2 sản phẩm mới từ
2.526.000₫
Xuất xứ:
China
Sản phẩm cùng mức giá
Hune 928BP-M
2.280.000₫
Khóa thẻ khách sạn Adel 737UMF1000
2.500.000₫
Khóa thẻ khách sạn Adel 737UMFB1003-RR
2.650.000₫
Khóa thẻ khách sạn Adel 737UMFB1003-PP
2.650.000₫
Khóa thẻ khách sạn Adel 737UMFB1008-PP
2.650.000₫
Khóa thẻ khách sạn Adel 737UMFB1008
2.500.000₫
Khóa thẻ cảm ứng Hune 029-2-D
2.290.000₫
Khóa thẻ cảm ứng Hune 029-D
2.450.000₫
ADEL 737UM 1000
2.720.000₫
HUNE B968SL-D
2.760.000₫
HUNE 918SL-P
2.656.000₫
Hune 928BP-D
2.500.000₫
Gian hàng bán
Thông số kỹ thuật
Mô tả sản phẩm
Nhận xét
(1)
Đánh giá
Hỏi đáp
(1)
Hình ảnh
Giá tăng dần
Tình trạng
Xuất xứ
Thuế
Bảo hành
Nơi bán:
HN (1)
HCM (1)
Khác
Toàn quốc (2)
Hà Nội (1)
Hồ Chí Minh (1)
Gian hàng đảm bảo tích cực
4.500.000₫
Mới - Chưa VAT
BH: 12 tháng
HN
:
Công Ty CP Công Nghệ Fitech Việt Nam (Fitech)
HÀNG CHÍNH HÃNG - BẢO HÀNH TẬN NƠI
Xem chi tiết
Gian hàng đảm bảo
2.526.000₫
Mới - Có VAT
BH: 12 tháng
HCM
:
Công Ty TNHH Công Nghệ Nhà Đẹp (congnghenhadep)
BÁO GIÁ CẠNH TRANH NHẤT THỊ TRƯỜNG
100%
đánh giá tốt (trong tổng số
4
đánh giá)
Xem chi tiết
Cùng Hãng sản xuất
Khoảng
2.011.111₫
5 gian hàng bán
LBS 300
Khoảng
3.000.000₫
4 gian hàng bán
LBS 600
Khoảng
0₫
1 gian hàng bán
Khoá thẻ từ 6600-90MI
Khoảng
0₫
1 gian hàng bán
Khoá thẻ khách sạn E3340
Khoảng
0₫
1 gian hàng bán
Khóa thẻ cảm ứng Block01
Khoảng
0₫
1 gian hàng bán
Khóa thẻ cảm ứng Block02
Khoảng
0₫
1 gian hàng bán
Khóa thẻ cảm ứng Block03
Khoảng
0₫
1 gian hàng bán
Khóa thẻ tiếp xúc Block07
Khoảng
0₫
1 gian hàng bán
Khóa thẻ tiếp xúc Block06
Các sản phẩm khác
Hune 928BP-M
2.280.000₫
4 gian hàng bán
Khóa thẻ cảm ứng Hune 930BKP-5-D
1.800.000₫
2 gian hàng bán
Samsung SHS-P717LMK/EN
8.505.000₫
6 gian hàng bán
Hune 988SL-D
2.915.000₫
2 gian hàng bán
LBS 300
2.011.111₫
5 gian hàng bán
Khóa điện tử cửa kính Gateman Shine
4.880.000₫
1 gian hàng bán
Khóa thẻ khách sạn Adel 737UMF1000
2.500.000₫
6 gian hàng bán
Khóa thẻ khách sạn Adel 737UMFB1003-RR
2.650.000₫
3 gian hàng bán
Khóa thẻ khách sạn Adel 737SMFB1888-PP
2.950.000₫
1 gian hàng bán
Khóa thẻ khách sạn Adel 30MF
550.000₫
4 gian hàng bán
Khóa thẻ khách sạn Adel 737UMFB1003-PP
2.650.000₫
1 gian hàng bán
Khóa thẻ khách sạn Adel 737UMFB1008-PP
2.650.000₫
3 gian hàng bán
Có 580 sản phẩm cùng danh mục với “Khoá khách sạn dùng thẻ RF”
Tỉnh/ Thành phố
Hà Nội
(89)
Hồ Chí Minh
(166)
Đà Nẵng
(36)
Bình Dương
(29)
Tây Ninh
(1)
Đồng Nai
(15)
Hãng sản xuất
ADEL
(40)
AVENT SECURITY
(12)
HUNE
(183)
KOHLLOCK
(27)
LOCSTAR
(18)
ORBITA
(40)
TENYALE
(35)
YBS
(90)
BE-TECH
(5)
DAE YANG
(2)
DIGI
(11)
DIOSSO
(3)
ENFORCER
(1)
EPIC
(4)
EVERNET
(5)
GATEMAN
(5)
GATEMAN SHINE
(1)
GOODTECH
(5)
HUNDURE
(1)
J-TECH
(2)
ONITY
(5)
PHGLOCK
(2)
SAMSUNG
(10)
SMART TECH
(2)
SOYAL
(3)
STANLEY
(4)
SYNC
(1)
TENGO
(2)
UNICOR
(1)
UNITOUTH
(1)
WINTEC
(4)
YALE
(2)
YGS
(11)
ZKTECO
(8)
Xuất xứ
China
(167)
Germany
(92)
Hongkong
(6)
Italy
(5)
Korea
(33)
Taiwan
(6)
United States
(13)
Vietnam
(4)
America
(2)
Australia
(2)
France
(1)
Malaysia
(1)
Thailand
(1)
Thêm lựa chọn
Các từ khóa liên quan
j-tech jt-92
,
su tu
,
umb 1000
,
mã chế
,
thẻ từ
,
be-tech
,
khóa cửa thẻ từ
,
bt6536
,
khoá cửa
,
khóa cửa từ
,
khóa cửa mã số
,
soyal ar-321
,
hune 029sl-d
,
khóa yale
,
khoa cua dung
,
khóa thẻ từ
,
smart door
,
khóa cửa korea
,
khoá cửa từ
,
bty 9822-1l
thẻ nhớ
,
khách sạn
,
đầu đọc thẻ
,
thẻ nhớ mmc
,
thẻ nhớ sd
,
thẻ điện thoại
,
thẻ nhớ sd 1gb
,
thẻ nhớ sd 2gb
,
thẻ nhớ sd 4gb
,
thẻ nhớ xd
,
thẻ nhớ xd 1gb
,
thẻ nhớ xd 2gb
,
thẻ nhớ cf 1gb
,
thẻ nhớ cf 2gb
,
thẻ nhớ cf 4gb
,
thẻ nhớ m2 1gb
,
thẻ nhớ m2 2gb
,
thẻ cào
,
thẻ nhớ m2
,
đọc thẻ nhớ
Rao vặt liên quan
Xem tất cả
Khóa cửa thẻ từ đang được tin dùng hiện nay
Đăng bởi:
cucvu
Cập nhật:
07/12/2015 - 09:16
Khóa thẻ từ dùng cho khách sạn
Đăng bởi:
nguyendu_hhd
Cập nhật:
04/09/2015 - 08:23
Khóa thẻ từ, khóa từ dùng cho khách sạn
Đăng bởi:
shopthetu115
Cập nhật:
12/07/2015 - 07:03
Khóa thẻ từ khách sạn hay dùng
Đăng bởi:
shopthetu115
Cập nhật:
10/06/2015 - 15:59
Khóa thẻ từ, khóa dùng thẻ từ cho khách sạn
Đăng bởi:
shopthetu115
Cập nhật:
09/03/2015 - 15:09
Khách sạn cần dùng khóa thẻ từ
Đăng bởi:
thuhienybs
Cập nhật:
19/11/2014 - 22:05
Liên Phát - khóa thẻ từ dùng cho khách sạn - khóa từ
Đăng bởi:
congtythuongmailienphat
Cập nhật:
09/12/2013 - 15:46
Lợi ích khi sử dụng khóa từ, khóa khách sạn dùng thẻ từ - 0904995755
Đăng bởi:
thuhienybs
Cập nhật:
11/10/2013 - 15:22
KHÓA THẺ TỪ KHÁCH SẠN HAY DÙNG LH 0946055554
Đăng bởi:
khoalienphat
Cập nhật:
23/09/2013 - 15:11
Khóa thẻ từ khách sạn hay dùng - khóa từ
Đăng bởi:
khoalienphat
Cập nhật:
18/09/2013 - 15:02
Hỏi đáp liên quan
Xem tất cả
Khoá thẻ từ có lợi ích ntn với khoá vân tay và khoá cơ?
Đăng bởi:
quyetnb
Cập nhật:
05/11/2011 - 15:03
Sản phẩm mới
Khoá thẻ từ Epic 809 Euro
Khóa cửa kính evernet point I remote
Khóa cửa kính Yale YDR-313
Khóa thẻ cảm ứng Avent Security C400
Khóa thẻ cảm ứng Avent Security C900
Khóa thẻ cảm ứng Avent Security C700
Khóa thẻ cảm ứng Avent Security C300
Khóa cửa thông minh KR188N
Khóa điện tử cửa kính Gateman Shine
Khóa khách sạn ZKTeco LH5000
Sản phẩm nổi bật
LBS 300
Khóa thẻ từ Hune 930S-D
Sản phẩm xem nhiều
Khoá khách sạn dùng thẻ RF
Khóa Cửa Sử Dụng Thẻ Từ ADEL 737 SMFB 1888
Khóa Cửa Sử Dụng Thẻ Từ ADEL 737 UMF 1000
Khóa điện tự động Soyal AR-321D
Khóa Cửa Sử Dụng Thẻ Từ MIFARE CARD ENCODER
Khóa Cửa Sử Dụng Thẻ Từ 737GMFW-5500
HUNE 968SL-D
Khóa thẻ khách sạn Adel A7MG
Khóa Cửa Sử Dụng Thẻ Từ ADEL 737 GMFB 2000
Khóa thẻ IC Stanley L-99KIC-15
Nhiều gian hàng bán
Khóa cửa thẻ từ và mật mã Adel 1006
Khóa thẻ khách sạn Adel 737UMF1000
Khóa thẻ Adel 4910
Samsung SHS-P717LMK/EN
Khóa điện tử Soyal AR-323D
LBS 300
Khóa thẻ từ Hune 930SS-D
Hune 929SS-D
Khóa thẻ khách sạn Adel 737GMFE5500
SOYAL AR-321
Hàng công nghệ
>
Điện tử, điện máy
>
Thiết bị an ninh
>
Khóa cửa sử dụng thẻ từ
(
Khóa cửa sử dụng thẻ từ
,
khoa cua su dung the tu
)
Trang thông tin, giá cả, cửa hàng bán, bình chọn, hỏi đáp về
Khoá khách sạn dùng thẻ RF
trong mục
Khóa cửa sử dụng thẻ từ
Hỗ trợ vận chuyển
Hỗ trợ thanh toán online
Chấp nhận thanh toán
Kết nối với chúng tôi
Điện thoại, viễn thông
Phụ kiện,thiết bị sửa chữa,...
Mobile
Thiết bị viễn thông
Dịch vụ viễn thông
Máy tính, linh kiện
Máy vi tính
Thiết bị cho máy tính
Máy văn phòng
Linh kiện, phụ kiện Laptop
Điện tử, điện máy
Thiết bị an ninh
Âm thanh
Đồ dùng trong bếp
Hình ảnh
Máy ảnh, máy quay
Thiết bị liên quan
Máy ảnh, máy quay
Dịch vụ chụp, rửa ảnh
Dịch vụ sửa chữa, thẩm định
Ô tô, xe máy, xe đạp
Ô tô (Xe hơi)
Xe máy, phụ tùng xe máy
Phụ tùng ô tô
Đồ chơi ô tô
Công nghiệp, Xây dựng
Thiết bị điện, nước
Xây dựng
Vật tư, thiết bị công nghiệp
Cơ khí chế tạo
Thời trang, phụ kiện
Thời trang nữ
Đồng hồ đeo tay
Thời trang nam
Thời trang đồ đôi, đồng phục
Mẹ & Bé
Đồ dùng cho trẻ
Đồ cho mẹ
Tắm gội, vệ sinh an toàn
Đồ cho bé khi ra ngoài
Sức khỏe, sắc đẹp
Y tế, sức khỏe
Chăm sóc da mặt
Nước hoa - Mỹ phẩm khác
Đồ trang điểm
Đồ dùng sinh hoạt
Đồ dùng nhà bếp, phòng ăn
Các loại đồ khác
Đồ dùng cá nhân
Đồ điện gia dụng
Nội thất, ngoại thất
Nội thất không gian, tổng hợp
Nội thất phòng ngủ
Nội thất văn phòng
Đèn trang trí, chiếu sáng
Sách, văn phòng, quà tặng
Hoa, quà tặng, đồ chơi
Sách
Thiết bị văn phòng
Thiết bị giáo dục
Thể thao
Golf (gôn)
Bóng đá
Tennis
Câu cá
Dịch vụ, giải trí, du lịch
Du lịch
Game, đồ chơi
Dịch vụ vận tải, vận chuyển
Băng đĩa phim, phụ kiện
Thực phẩm, đồ uống
Đồ uống
Bánh kẹo, mứt
Thực phẩm chín, qua chế biến
Thực phẩm tươi sống
Vatgia.com - Sàn giao dịch thương mại điện tử hàng đầu Việt Nam
Mua hàng trực tuyến mang lại sự tiện lợi, chủ động, lựa chọn đa dạng, với các dịch vụ hỗ trợ mua hàng, bán hàng, thanh toán an toàn, giao hàng chuyên nghiệp.
Với phương châm “Luôn đặt mình vào địa vị khách hàng và đối xử trên mong đợi của họ”, Vatgia.com không ngừng nỗ lực, cải tiến đáp ứng nhu cầu mua sắm cho người tiêu dùng.
Vatgia đảm bảo cung cấp đúng thông tin cho đúng người, đúng lúc, đảm bảo thanh toán trực tuyến bảo mật an toàn, áp dụng hình thức vận chuyển nhanh phù hợp.
Rao vặt
|
Hỏi đáp
|
Review - Đánh giá
|
Lưu trữ rao vặt
|
Quà tết
|
Việc làm
|
Dien thoai
|
Laptop
|
Mua ban oto
|
Xe may
|
iPhone 5
|
iPhone 5s
|
iPhone 6
|
iPhone 6 plus
|
iPhone 6s
|
iPhone 6s plus
|
iPhone 4
|
iPhone 4s
|
Điện thoại iphone
|
Galaxy s5
|
Galaxy s6
|
Áo khoác đẹp
|
Áo khoác da
|
Áo khoác nam
|
Giày nam
|
Vest nam
|
Đầm công sở
|
Áo khoác nữ
|
Giày cao gót
|
Bất động sản
|
Cho thue nha
|
Tìm việc
|
Máy lọc nước
|
Cách làm trắng da
|
Sim số đẹp
|
Bồn nước
|
Bộ chìa lục giác ( lục lăng )
|
Bột giặt
|
Sạc điện thoại
|
Máy mài bàn
|
Hoa văn phòng
|
Máy nén khí
|
Dao cắt ống
|
Sứ cách điện
|
Dụng cụ xây dựng cầm tay
|
Dụng cụ siết mở ốc, vít
Giới thiệu
|
Hướng dẫn
|
Quy chế hoạt động
|
Chính sách bảo mật thông tin
Công ty Cổ phần Vật Giá Việt Nam. Số GCNDT: 011032001615, cấp ngày 21/06/2012, nơi cấp: UBND thành phố Hà Nội
Trụ sở chính: Lê Đại Hành, Hai Bà Trưng, Hà Nội - Chi nhánh Hồ Chí Minh: Đường Lữ Gia, Phường 15, Quận 11, Hồ Chí Minh
Tài khoản
Yêu thích
Giỏ hàng
Đã xem
Ứng dụng
×

Set-Cookie: history_product=224929%7C0; path=/

Server: Apache

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Vary: Accept-Encoding


markdown:
####
Sản phẩm có thể bạn thích
[ Xem thêm tại mục ](/578/dong-ho.html) **Đồng hồ** **Đồng hồ**
|
|Giá sản phẩm : |
|
800.000 đ
Nếu tin rao có nhiều sản phẩm,giá sẽ tùy thuộc vào SP cụ thể
Người đăng:
**mobiado_vertu** (6 năm10 tháng 22 ngày )
Đồng hồ nữ, Sản phẩm đồng hồ nữ, thông tin, giá cả đồng hồ nữ, Đồng hồ Trung Quốc, Luminox, Marco Max, Movado, Omega, Paris Hilton, Piaget, Pierre Cardin, Porsche, Pulsar, Puma , Rado, Roamer, Roberto Bianci, Roberto Cavalli ,Role
Calvin Klein, Casio, Charriol, Citizen, Coach, Concord , Corvette ,D&G Dolce & Gabbana, Dior, Edox, Esprit, ESQ by Movado, Festina, Frederique Constant, Freestyle (2) Gevril (11) Gucci , Guess, Invicta, Issey Miyake, Jacques Lemans,Jaeger LeCoultre, Juicy Couture (12) Kenneth Cole (160) Levis
[Miễn phí vận chuyển, nhận giao hàng tận nơi chỉ sau 6h đến 24h. Quý vị ở xa muốn mua hàng qua mạng nếu ở thành phố thì chuyển hàng tận nơi rồi mới thu tiền còn ở huyện lỵ thì chỉ cần đặt cọc 05% giá trị hàng hoá chúng tôi chuyển tận nơi rồi thu nốt số tiền còn lại...](http://www.mobihot.vn/pages.php?pageid=4) [GRAND MONACO Chanel N°5 Ruột Nokia 7310](http://www.mobihot.vn/products/GRAND-MONACO-Chanel-N%C2%B05-Ru%E1%BB%99t-Nokia-7310.html)
Chanel
[Tag heuer mini Loại mới nhất](http://www.mobihot.vn/products/Tag-heuer-mini-Lo%E1%BA%A1i-m%E1%BB%9Bi-nh%E1%BA%A5t.html) [Điện thoại đồng hồ Watch Mobile](http://www.mobihot.vn/products/%C4%90i%E1%BB%87n-tho%E1%BA%A1i-%C4%91%E1%BB%93ng-h%E1%BB%93-Watch-Mobile.html)
DÒNG SẢN PHẨM
**MIEN PHI VAN CHUEN** **GIA SIEU RE 5.700.000 VND, CHUYÊN VERTU - MOBIADO - NOKIA - Iphone - Ipad - Lamborghini - Porsche - ĐT 2SIM...Dong Ho Nam, Dong Ho Nu, Cac Loai Khac.... ** **Hàng siêu HOT mới về. Đảm bảo mới 100%, Pin, sạc** **,** ** cáp USB, hàng loại 1 với 4 mảnh shaphia dầy loại mới chống xước , ** **Mobiado Classic 712 ZAF**
Quý vị ở xa muốn mua hàng qua mạng, chúng tôi nhận giao hàng tận nơi chỉ sau 6h đến 24h. Quý vị ở thành phố thì chuyển hàng tận nơi rồi mới thu tiền còn ở huyện lỵ thì chỉ cần đặt cọc 05% giá trị hàng hoá chúng tôi chuyển tận nơi rồi thu nốt số tiền còn lại...
**ĐT: (04)7300.7730 - 097.998.4444 - 0984.218.858**
1.050.000 VNĐ
140.000 VNĐ
5.500.000 VNĐ
4.700.000 VNĐ
1.100.000 VNĐ
Thỏa thuận...
Thỏa thuận...
Thỏa thuận...
1.589.176 VNĐ
690.000 VNĐ
1.050.000 đ
140.000 đ
5.500.000 đ
4.700.000 đ
1.100.000 đ
Thỏa thuận...
Thỏa thuận...
Thỏa thuận...
1.589.176 đ
690.000 đ
Thỏa thuận...

Set-Cookie: u_nologin_id=2474662165; expires=Fri, 20-May-2016 09:24:36 GMT; path=/; httponly


markdown:
nói thật là mình quá gà,đến hôm nay mình mới biết đến 1 dạng ổ cứng trực tuyến,xem bài đang thì đã có bài đăng từ năm trc,nhưng mình vẫn còn thắc mắc 1 số chỗ mong các bạn giải thích giúp
1.Mình muốn cài vào ổ khác ngoài ổ C thì làm thế nào
2.có ẩn được folder của nó không
3.nếu mình giớ thiệu thêm cho bạn bè thì mình đc thêm 250mb miến phí,thì cách làm như thế nào
4.nếu mất mạng thì có vào dc trang web của dropbox ko
5.làm thế nòa để có thể cho ngừoi khác vào folder dropbox của mình và chặn lại nhưng thế nào
THANKS

Set-Cookie: vbseo_loggedin=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/

Cache-Control: private

Pragma: private


markdown:
[Xem video phimdang chieu kenh today luc 19 gio](http://phim-clip.com/phimdang-chieu-kenh-today-luc-19-gio)
-
Không có phim này. Vui lòng tìm từ khóa khác. Hoặc xem video bên dưới
No results.
#### Kết quả tìm phim phimdang chieu kenh today luc 19 gio
Xin chờ...
-
[Người Đàn Bà Cuồng Dâm](/movie/nguoi-dan-ba-cuong-dam)
-
[Lan Quế Phường 3](/movie/lan-que-phuong-3)
-
[Bí Mật Một Gia Đình](/movie/bi-mat-mot-gia-dinh)
-
[Lie With me](/movie/lie-with-me)
-
[Tình Thầy Trò](/movie/tinh-thay-tro)
-
[Cô Hàng Xóm](/movie/co-hang-xom-hq)
-
[Người Hầu Gái](/movie/nguoi-hau-gai)
-
[Mẹ kế 2](/movie/me-ke-2)
-
[Vương Quốc Dục Cảm](/movie/vuong-quoc-duc-cam)
-
[Bà Mẹ Trẻ](/movie/ba-me-tre)
-
[Mùa hè rực cháy](/movie/mua-he-nong-bong)
-
[Bí Ẩn Hình Xăm](/movie/bi-an-hinh-xam)
-
[Vũ Khí Siêu Hạng](/movie/vu-khi-sieu-hang)
-
[Một Thời Hoàng Kim](/movie/mot-thoi-hoang-kim)
-
[Truy Sát Ông Trùm 2](/movie/truy-sat-ong-trum-2)
-
[Sắc giới](/movie/sac-gioi)
-
[Phim cấp 3](/movie/phim-cap-3)
-
[Bậc Thầy Chia Tay](/movie/bac-thay-chia-tay)
-
[Kẻ Tống Tình](/movie/ke-tong-tinh)
-
[Vợ Chồng Dân Chơi](/movie/vo-chong-dan-choi)
-
[Hot Girl Siêu Quậy](/movie/hot-girl-sieu-quay)
-
[Cô Hàng Xóm](/movie/co-hang-xom-hq)
-
[Cô Nàng Bá Đạo](/movie/co-nang-ba-dao)
-
[30 Vẫn Còn Xuân](/movie/30-van-con-xuan)
-
[Em Đẹp Nhất Đêm Nay](/movie/em-dep-nhat-dem-nay)
-
[Đêm vui bất ngờ](/movie/mot-dem-vui-ve)
-
[Tuổi Nổi Loạn Phần 2](/movie/tuoi-noi-loan-2)
-
[Truy Sát Ông Trùm 2](/movie/truy-sat-ong-trum-2)

Server: cloudflare-nginx

Cache-Control: max-age=0, no-cache, no-store, must-revalidate, post-check=0, pre-check=0


markdown:
**CÁCH TẠO KÍ TỰ LẠ TRONG YAHOO**Khi các bạn chát đôi khi các bạn gặp 1 số nick đặc biêt như !!!-@nh yeu em -!!! , thỉnh thoảng các bạn còn gặp những nick đặc biệt hơn nữa Vd: ®(¯`v´¯)«ßÖY»(¯`v´¯).. Trước tiên các bạn vào mail.yahoo.com hoặc mail.yahoo.co.uk để đăng nhập (login) Sau khi đăng nhập dưới ID (nick) của bạn sẽ thấy chữ My Account bên cạnh Sign out , nhấn vào đó. Tiếp đến, một bảng hiện ra yêu cầu bạn nhập password để vào Account Information, nhập password và vào thoại (ấn Continue) Bạn chú ý đến cái dòng chữ to nền vàng Member Information và nhìn vào bên trái có chữ Edit, ấn vào đó Một trang mới hiện ra , kéo xuống cuối trang, chú ý dòng General Preferences. Ở mục Language & Content có 1 đoạn chữ màu xanh có gạch chân (thường là English- United States) ấn vào đó. Lúc đó, màn hình sẽ hiện ra một trang mới, nhìn thấy New setting, chọn Chinese- China (Mainland) rồi nhấn vào Finished, OK Sau đó, 1 chuỗi ký tự vô cùng lạ xuất hiện, bạn đừng quan tâm, kéo xuống cuối trang . Sẽ thấy 2 ô với 2 lựa chọn , ấn vào cái ô bên trái để tiếp tục (nó có dạng ÎO½OÊÜ) Trang acc information lại xuất hiện, bạn nhìn sang phải dưới cái ID của bạn (uname24) và các nick ảo sẽ là 1 cái chữ màu xanh có gạch dưới (¼/´´½¨¸öÈËµµ°)¸, ấn vào đó (nó là cái Edit/Create profile ) Hiện ra một trang web với ID thật và các nick ảo của bạn, Chọn nick mà bạn muốn làm, chọn ký tự đặc biệt rồi ấn vào ô có hình tương tự <±à¼> Một trang mới xuất hiện, ấn vào cái chữ màu xanh gạch dưới tương tự ±à¼¸öÈËµµ° (ở ngay trên đầu và ở giữa đó ) Một trang mới lại xuất hiện , ở cái ô thứ 2 có dạng ÄØ³Æ (hoặc được ghi là Nick name ở một số máy) đánh vào đó những gì mà bạn muốn ( bảng ký tự đặc biệt tôi sẽ cho ở dưới ) Sau đó kiểm tra ấn vào cái ô tương tư như ³ÉÔ±Ä¿Â¼ ở cuối trang . Bây giờ cái nick của bạn đã làm xong . Công việc của bạn là vào lại Account information và chuyển từ tiếng china mainland thành tiếng Anh ( làm như phần đầu hướng dẫn). Cái member information chuyển thành ÓÃ»§ÐÅÏ¢ cái Language& content chuyển thành ÓïÑÔ¼°ÄÚÈÝ£º , Bấm vào cái link đó và chọn dòng English United states sau đó ấn vào cái ô có dạng Íê³É (ở bên trái) . Rồi, tiếng Anh lại xuất hiện bạn làm tiếp nha. Sau đây là bảng kí tự đặc biệt (symbols) ( khỏang 90% symbols ròai) a ð å Å Â ª Ä Á À ã Ã A b ß (3 B c Ç ç © ¢ C d ð Ð D e ë é ê è í € £ Ë É Ê È E f ƒ F g G h µ H i | | ï í î ì ¡ ¦ Ï Í Î Ì I j ¿ J k |{ |<>
có gì thì ghé thăm mòa nhìn nhá
.................../'"')Chỉ........
................,/¯../Tay.........
................/..../Lên..............
.............../..../Trời..............
........./´¯/'...'/´¯¯`•¸Hận...
....../'/.../..../..../¨¯\Đời......
.....('(...´...´..¯~/'...')Vô.......
......\...*Shock*...../Đối........
........\'...\........_.•´...............
..........\............(......................
….........\............\..................
![](http://i47.photobucket.com/albums/f155/album_love/Cuong_cold/45.jpg)
2 «»«»«»«»«»«»«» ::::::*.*::::::::*.**.*:::::::*.*:::::::::
![Rầu thúi ruột ](http://www.diendantinhoc.vn/images/smilies/redface.gif)
3 «»«»«»«»«»«»«» ::::*.*::::
![Rầu thúi ruột ](http://www.diendantinhoc.vn/images/smilies/redface.gif)
![Rầu thúi ruột ](http://www.diendantinhoc.vn/images/smilies/redface.gif)
![Rầu thúi ruột ](http://www.diendantinhoc.vn/images/smilies/redface.gif)
4 «»«»«»«»«»«»«»::::::*.*:::::::°·. ?¸.·°:::::::*.*::::::::::::::::::
![Rầu thúi ruột ](http://www.diendantinhoc.vn/images/smilies/redface.gif)
5 «»«»«»«»«»«»«» :::::::::*.*::::::::::::::::::*.*::::::::::::::::: :::::::::::
![Rầu thúi ruột ](http://www.diendantinhoc.vn/images/smilies/redface.gif)
6 «»«»«»«»«»«»«» :::::::::::::*.*:::::::::::*.*:::::::::::::::::::: ::::::::::::::::°:¦:°:::::::::::::::::::::::::: ::::::::::*.*:::::::::::*.*:::::::::::::: «»«»«»«»«»«»«»
7 «»«»«»«»«»«»«» :::::::::::::::::::::*.*::::::::::::°·.¸ °:¦:° ¸.·°::::::::::::::::::::::::::::°·.¸ °:¦:° ¸.·°:::::::::::*.*::::::::::::::::::::::: «»«»«»«»«»«»«»
2N ( °·.¸ ~ / ~ ¸.·° ) ( °·.¸ ~ / ~ ¸.·° )
3G ( (0) °·.¸ °:¦:° ¸.·° (0) ) ( (0) °·.¸ °:¦:° ¸.·° (0) )
4L °· . ¸ ¸¸¸¸¸ | | ¸¸¸¸¸ ¸ . ·° °· . ¸ ¸¸¸¸¸ | | ¸¸¸¸¸ ¸ . ·°
5A ¸.·° | | °·.¸ ¸.·° | | °·.¸ Love .÷*****÷. .÷*****÷. You
1 .** ' ' **. .** ' ' **. .
2 .** ' ** ' **.
3 .** ' ...ONLY... ' **. .
4 .+***+. .** ' ..LOVE.. ' **. .+***+. .
5 : ± : .** ' ' **. : ± : .
6 : *+.+´ .+**+. '.**. .**.' .+**+. `+.+* :
7 `*-..........-*´ *...* `*÷*´ *...* `*-..........-*´
__3__.÷*****÷. Khanh .÷*****÷.
2 (__/) .**' '**. My .**' '**. (__/)
3 (>'o'<) .**' Anh Yêu Em '**. (>'o'<)
4 (")_(") '**. .**' (")_(")
5 *(`·.¸(`·.¸*¤*¸.·´)¸.·´)* .+****+. '**. Love .**' .+****+. *(`·.¸(`·.¸*¤*¸.·´)¸.·´)*
6 »~:¤.·º`·. I LOVE YOU .·´º·.¤:~« : Cha`ng
B ) - - (....................................) - - (
C / (0 _ 0) ............................./ (0 _ 0)
D (0) /.................................. (0) /
E _ '-.._'='_..-' _.................................._ '-.._'='_..-' _
F /`; # ' # ' # .-. # ' # ' # ;´........./`; # ' # ' # .-. # ' # ' # ;´
G _)) '^' ((_/.........._)) '^' ((_/
H #. Ti`nh Ye^u .#..........#. Ti`nh Ye^u .#
I '#. Cua Chu'ng Mi`nh .#'............'#. Cua Chu'ng Mi`nh .#'
K / '#. La .#' ............./ '#. La .#'
L _ ' #. Vi~nh Cuu .# '/ /_........ _ ' #. Vi~nh Cuu .# '/ /_
M (( (__) '#' (__) ))...................(( (__) '#' (__) ))
1E (¯¯`·.¸ My LoVe For You ¸.·´¯¯)
2N ( °·.¸ ~ / ~ ¸.·° )
3G ( (0) °·.¸ °:¦:° ¸.·° (0) )
4L °· . ¸ ¸¸¸¸¸ | | ¸¸¸¸¸ ¸ . ·°
5A ¸.·° | | °·.¸
6N / ¸.·´`··´`·.¸
7D (_ ¸.·° forever °·.¸ _)
-----------------------------
!!!!!!! .÷*****÷. love .÷*****÷.
! .**' '**. .**' '**.
!! .**' Anh Yêu Em '**.
!!! '**. .**'
!!!! .+****+. '**. Love .**' .+****+.
!!!!! : Cha`ng : '**. _Va`_ .**' : Na`ng :
!!!!!! `*****´ .÷*****÷. love .÷*****÷. `*****´
!!!!!!! `*-................-*´ *...* `*÷*´ *...* `*-................-*´
----------------------------------------------------------------------------------------
A "·´`·.(*·.¸(`·.¸ ¸.·´)¸.·*).·´`·"
B "* † * My "LoVe" FoReVeR * † *"
C "·´¨*·.¸¸.*..^_^ Chi Yêu Mình Em ^_^..*.¸¸.·*¨."
D "·´`·.(¸.·´(¸.·* *·.¸)`·.¸).·´`·"
E *(¨`·.·´¨)*
F `·.¸.·´
2N ( °·.¸ ~ / ~ ¸.·° )
3G ( (0) °·.¸ °:¦:° ¸.·° (0) )
4L °· . ¸ ¸¸¸¸¸ | | ¸¸¸¸¸ ¸ . ·°
5A ¸.·° | | °·.¸
6N / ¸.·´`··´`·.¸
7D (_ ¸.·° forever °·.¸ _)
! .**' '**. .**' '**.
!! .**' Anh Yêu Em '**.
!!! '**. .**'
!!!! .+****+. '**. Love .**' .+****+.
!!!!! : Cha`ng : '**. _Va`_ .**' : Na`ng :
!!!!!! `*****´ .÷*****÷. love .÷*****÷. `*****´
!!!!!!! `*-................-*´ *...* `*÷*´ *...* `*-................
¨°o.O (your nickname here) O.o°
×÷·.·´¯`·)» (your nickname here) «(·´¯`·.·÷×
· ··^v´¯`×) (your nickname here) (×´¯`v^·· ·
,.-~*'¨¯¨'*·~-.¸-(_ (your nickname here) _)-,.-~*'¨¯¨'*·~-.¸
- - --^[ (your nickname here) ]^-- - -
•·.·´¯`·.·• (your nickname here) •·.·´¯`·.·•
`·.¸¸.·´´¯`··._.· (your nickname here) `·.¸¸.·´´¯`··._.·
(¯`·._) (your nickname here) (¯`·._)
¯¨'*·~-.¸¸,.-~*' (your nickname here) ¯¨'*·~-.¸¸,.-~*'
Oº°‘¨ (your nickname here) ¨‘°ºO
×º°"˜`"°º× (your nickname here) ×º°"˜`"°º×
.·´¯`·-> (your nickname here) <-·´¯`·.
<º))))><.·´¯`·. (your fishname here) ¸.·´¯`·.¸><((((º>
- -¤--^] (your nickname here) [^--¤- -
._|.<(+_+)>.|_. (your nickname here) ._|.<(+_+)>.|_.
..|..<(+_ (your nickname here) _+>..|..
-·=»‡«=·- (your nickname here) -·=»‡«=·-
•°o.O (your nickname here) O.o°•
––––•(-• (your nickname here) •-)•––––
(¯`•¸·´¯) (your nickname here) (¯`·¸•´¯)
··¤(`×[¤ (your nickname here) ¤]×´)¤··
—(•·÷[ (your nickname here) ]÷·•)—
·ï¡÷¡ï· (your nickname here) ·ï¡÷¡ï·
·!¦[· (your nickname here) ·]¦!·
°º¤ø,¸¸,ø¤º°`°º¤ø,¸ (your nickname here) °º¤ø,¸¸,ø¤º°`°º¤ø,¸
»-(¯`v´¯)-» (your nickname here) »-(¯`v´¯)-»
°l||l° (your nickname here) °l||l°
•°¤*(¯`°(F)( (your nickname here) )(F)°´¯)*¤°•
—¤÷(`[¤* (your nickname here) *¤]´)÷¤—
¸.´)(`·[ (your nickname here) ]·´)(` .¸
·÷±‡± (your nickname here) ±‡±÷
+*¨^¨*+ (your nickname here) +*¨^¨*+
**Các kí tự ngộ nghĩnh**Các bạn có thể làm cho bài viết của mình sinh động hơn hoặc khẳng định cá tín của bạn bằng cách chèn các kí tự đặc biệt vào trong bài viết của bạn hoặc tên của bạn.
VD : Nick của mình sau khi được thêm chút hoa lá hẹ ^^
(¯`·.º-:¦:-† KiMAHASHi †-:¦:-º.·´¯)
(¯`'•.¸(¯`'•.¸† KiMAHASHi †¸.•'´¯)¸.•'´¯)
¸.·'´¯) ¸,ø¤°``°¤ø,¸(¯`'·.¸KiMAHASHI¸.·'´¯) ¸,ø¤°``°¤ø,¸(¯`'·.¸
¸.•´¯`•.¸¸.¤KiMHAShi-¤-:¦:-´¯))--»
ஐKimahashiஐ
๑۩۞۩๑[♥๑۩۞۩๑ (¯`•♥KiMAHASHi♥•´¯) ๑۩۞۩๑[♥๑۩۞۩๑
____♥♥♥_____♥♥♥_____
__♥_____♥_♥_____♥___
__♥______♥______♥___
___♥____Kima___♥____
_____♥_______♥______
_______♥___♥________
_________♥__________
_______♥___♥________
_____♥_______♥______
___♥____hashi___♥____
__♥______♥______♥___
__♥_____♥_♥_____♥___
____♥♥♥_____♥♥♥_____
¸ .?'´¯) ¸,ø¤°``°¤ø,¸(¯`'?.¸
¸ .?'´¯),ø¤°``°¤ø,¸¸,ø¤°`°¤ø,¸(¯`' ?.¸
¸¸,ø¤°``°¤ø,¸¸,ø¤°``°¤ø,¸,ø¤°` `°¤ø,¸¸ ,
[K]iMAHAShi
``°¤ø,¸©¸,ø¤°`°¤ø,¸¸,ø¤°`°¤ø, ?©¸¸,ø¤°´´
(_¸.?°´'`°¤,¸.?*´`*?.¸,¤°´'`°?.¸_)
°`°¤ø,¸¸,ø¤°`°
(`'•.¸(`'•.¸¤*¤¸.-'´)¸.•'´)
«´¨`•..¤ KIMA :¤..•´¨`»
(¸.•'´(¸.•'´¤*¤`'•.¸)`'•.¸)
Còn cái này là 1 nick khác của mình: SorryPro
Các bạn có thể tham khảo thêm như thế này để có thêm nhiều kí đặc biệt:
Start --> Programs --> Accessories --> System tools --> Character Map
Hoặc có thể dùng mã để tạo ra 1 kí tự đặc biệt bằng cách ấn Alt + mumber
VD : Alt + 0153 = ™
Alt + 3 = ♥
Cách này đòi hỏi bạn phải thuộc mã T_T , nhưng các bạn có thể tham khảo bào viết của bạn Ruby_moon tại đây để biết thêm 1 số mã.
Và cách đơn giản hơn cả là các bạn cứ copy mấy cái VD của mình rồi sửa lại thành tên của mình la được
**Các kí tự mới và lạ nhứt**/̵͇̿̿/̿̿"̿̿̿̿̿ ̿̿̿̿ (Nick) ̿̿̿̿̿̿̿'̿̿̿̿̿'\̵͇̿̿\
ҳ̸Ҳ̸ҳ (Nick) ҳ̸Ҳ̸ҳ
๑۩۞۩๑ (Nick) ๑۩۞۩๑
ıllıllı (Nick) ıllıllı
ε[-ิิ_•ิ]з Nick ε[-ิิ_•ิ]з
|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ ̡͌l̡ ̴̡ı̴̴̡ ( Nick) ̡l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|
( ̲̅:̲̅:̲̅:̲̅[̲̅ ̲̅]̲̅:̲̅:̲̅:̲̅ ) (Nick) ( ̲̅:̲̅:̲̅:̲̅[̲̅ ̲̅]̲̅:̲̅:̲̅:̲̅ )
۞۞ (Nick) ۞۞
●±‡±● (Nick) ●±‡±●
●๋• (Nick) ●๋•
[̲̅ə̲̅٨̲̅٥̲̅٦̲̅] (Tu nick) [̲̅ə̲̅٨̲̅٥̲̅٦̲̅]
۰۪۪۫۫●۪۫۰ (Nick) ۰۪۪۫۫●۪۫۰
## No comments:
## Post a Comment

X-XSS-Protection: 1; mode=block

Server: GSE

Cache-Control: private, max-age=0

X-Content-Type-Options: nosniff


markdown:
Thảo luận trong 'Hội làng' bắt đầu bởi mod04, 18/1/12.
co 36 diem day
Tôi cũng có 36 điểm đây
Gửi thế này hợp lệ chưa mod ơi?
Mod ơi kiểm tra giúp mình với nhé. đăng ảnh thế này được chưa vậy? có hợp lệ ko??
Cước ù (ngư ông bắt cá) là như thế nào vậy
mod kiem tra xem ho nhe
Gửi mod! hôm trước tôi có ù 1 ván "cá lội sân đình - tôm" và đã post ảnh lên rồi nhưng không thấy hiện lên! Hôm nay tôi gửi lại ở phần nội dung này mod xem xét cho tôi nhe!
Nếu có tí giải thì vui lắm!
Cảm ơn mod nhiều!
Bạn gửi bài tham dự nhầm chủ đề. bài này bạn gửi lại tham dự sự kiện Hoa Nhà Cá xuân Nhâm Thìn nhé!
mai moi u duoc van to!
u nhu nay khong biet co dc thuong khong?
Chúc mừng bạn đã mua được nhà lầu, tậu được xe hơi,Với cước này bạn hãy gửi tham dự thêm sự kiện Hoa Nhà Cá xuân Nhâm Thìn nữa nhé!
Khi tổng kết các sự kiện nếu bài này của bạn đoạt giải sự kiện nào cao hơn thì sẽ trao giải cao cho sự kiện cao hơn đó
BQT cho mình tham gia nhé
em cũng ù được 1 ván
Mình lại có thêm 1 bài để tham dự đây:
Cước Ngư ông bắt cá là khi ù chì bạch thủ bát vạn bài trên tay có chắn chi chi và chắn ngũ sách bạn nhé!
TUI GUI 1 BA`I
Tui cung co mot van khong biet co hop le khong Admin oi?
Mình lại có bài ù nữa tham gia. hi hi
Các tên cách nhau bởi dấu phẩy(,)

X-Frame-Options: SAMEORIGIN


markdown:
Album 1 bao gồm các bài hát của phim Hoàng tử gác mái đã được phát hành
Loạt phim đình đám Hoàng tử gác mái của đài SBS đã đưa ra bản sao đầy đủ lần đầu tiên các bài hát trong phim vào ngày 17/4/2012.
Album đầu tiên này của Hoàng tử gác mái bao gồm các bài hát trước đó phát hành chủ yếu bởi Baek Ji Young, ALi và Jay Park, với bản instrumental. Thêm vào đó, với 7 bản nhạc nền của phim, nó đã trở thành album với 13 bài hát.
Danh sách album:
1. After a Long Time -Baek Ji Young
2. Hurt – ALi
3. Happy Ending – Jay Park
4. Lotus (Buyong) Pond
5. Empty
6. Rooftop Prince Title
7. Return of Gang of 4
8. Seoul Outing
9. Sleep Together with flower tonight
10. Riddle
11. After a Long time – Instrumental
12. Hurt – Instrumental
13. Happy Ending – Instrumental
**credit:** [http://asian-drama.org](http://asian-drama.org)
**V*trans:** HK3u @ DBSKinfo ctv
**shared by:** sharingyoochun.net + [DBSKinfo](http://wp.me/p1XyY3-2YS)

X-ac: 1.dca _dca

X-hacker: If you're reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header.

Vary: Cookie


markdown:
Văn bản
Đào tạo luật
Admin
Email
Trang chủ
Gửi yêu cầu dịch vụ
Đặt làm trang chủ
Giới thiệu
Về Luật Minh Khuê
Thông tin tuyển dụng
Đối tác - Khách hàng
Dân sự
Luật sư dân sự
Tư vấn luật dân sự
Kiến thức luật dân sự
Hình sự
Luật sư hình sự
Tư vấn luật hình sự
Kiến thức luật hình sự
Hôn nhân
Luật sư hôn nhân
Tư vấn luật hôn nhân
Kiến thức luật hôn nhân
Đất đai
Luật sư đất đai
Tư vấn luật đất đai
Kiến thức luật đất đai
Lao động
Luật sư lao động
Tư vấn luật lao động
Kiến thức luật lao động
Doanh Nghiệp
Luật sư doanh nghiệp
Tư vấn luật doanh nghiệp
Kiến thức luật doanh nghiệp
Sở hữu trí tuệ
Dịch vụ sở hữu trí tuệ
Tư vấn luật sở hữu trí tuệ
Kiến thức luật sở hữu trí tuệ
Thuế
Dịch vụ luật sư thuế
Tư vấn luật thuế
Kiến thức pháp luật thuế
Biểu mẫu
Biểu mẫu luật dân sự
Biểu mẫu luật hình sự
Biểu mẫu luật hôn nhân
Biểu mẫu luật đất đai
Biểu mẫu luật lao động
Văn bản luật
Luật
Nghị quyết
Nghị định
Thông tư
Quyết định
Văn bản khác
Liên hệ

Powered-By: MK Law


markdown: SEEiT

P3P: CP=NOI NID CUR ADM DEV

set-cookie: connect.sid=s%3A7U7MRCxcIcWg8c1V3mKL5TCYpTGgQ5YW.5KW5oR4PcNnt3%2FQdCp3KlIY7FhDvDDgHtGu5wfiz3yQ; Path=/; Expires=Thu, 09 Feb 2017 14:51:41 GMT; HttpOnly


markdown:
QUANG TRUNG ĐẠI PHÁ QUÂN THANH
Bảo tàng Bình Định và Viện Khảo cổ VN đang khai quật thành Hoàng Đế tại xã Nhơn Hậu, huyện An Nhơn, tỉnh Bình Định. Kết quả của đợt khai quật này giúp cho các nhà khảo cổ và những người nghiên cứu lịch sử có cái nhìn toàn diện hơn về một cung điện thời Tây Sơn bị vùi trong lòng đất cách nay hơn 200 năm.
Một kinh đô bị chôn vùi
Theo sử liệu, thành Hoàng Đế do vua Thái Đức (Nguyễn Nhạc) bắt đầu xây dựng từ năm 1776. Sau khi Nguyễn Ánh lên ngôi (1802), những gì liên quan đến nhà Tây Sơn đều bị xóa sạch dấu vết. Thành đã bị nhà Nguyễn san phẳng.
Trên mặt bằng của điện Bát Giác - nơi vua Thái Đức thiết triều - hiện nay là ngôi mộ của Võ Tánh - một viên tướng của Nguyễn Ánh đã tử trận trong cuộc huyết chiến giữa quân Tây Sơn và quân Nguyễn ngay tại thành Bình Định năm 1801.
Nơi chôn Võ Tánh (lăng Ông) và thành Hoàng Đế của nhà Tây Sơn đã bị chôn vùi trong quên lãng. Cả một công trình kiến trúc khá quy mô bị đổ nát hoàn toàn không phải do mưa nắng của thời gian mà là kết quả phủ định của vương triều sau đối với vương triều trước đó. Đây là nét khác biệt về sự tồn tại giữa thành Hoàng Đế của nhà Tây Sơn với các kinh đô khác của chế độ phong kiến VN.
Công trình kiến trúc quy mô
Tại hố đào sát cạnh điện Bát Giác, cả một mái hiên của cung điện này đã hiện ra. Ngoài phần đá móng và gạch lát nền còn có một hàng cột trước mái hiên mà dấu vết còn lại chỉ là những lỗ rỗng. Ơ gần đó, người ta cũng phát hiện một công trình kiến trúc khác với những đường nét xây dựng khá tinh tế.
Cách chừng 200 mét phía trước cung điện là một thủy hồ. Trong lòng hồ, người ta đã tìm thấy một hiện vật hình chiếc bát được chạm khắc rất công phu, vẫn chưa xác định được công dụng của hiện vật này.
Những gì thu được từ các hố đào sẽ giúp cho các nhà sử học hình dung được phần nào bố cục của cả thành Hoàng Đế. Theo "Đồ Bàn thành ký" của Nguyễn Văn Hiển - đốc học Bình Định năm 1856 thì trong Tử Cấm Thành của thành Hoàng Đế, ngoài điện Bát Giác còn có toà chính điện, nhà thờ tổ, hai bên có dãy hành lang - nơi chầu của các quan văn, võ...
Những gì thu được từ đợt khai quật đã góp phần khẳng định những sử liệu đã ghi lại về thành Hoàng Đế là hoàn toàn chính xác. Theo đánh giá của tiến sĩ Lê Đình Phụng (Viện Khảo cổ) thì đây là công trình kiến trúc thời Tây Sơn duy nhất còn lại ở nước ta, quy mô cũng lớn hơn một số công trình liên quan đến kiến trúc cung đình thời phong kiến được khai quật trước đây.
Trong tiến trình trùng tu các di tích tại Bình Định, ngành văn hóa thông tin tỉnh này đã có kế hoạch phục dựng lại một phần của thành Hoàng Đế. Ông Văn Trọng Hùng - Giám đốc Sở VHTT Bình Định cho biết: "Dựa trên số liệu báo cáo của các nhà khảo cổ học và các nhà nghiên cứu lịch sử từ đợt khai quật này cũng như các tài liệu liên quan, chúng tôi sẽ tổ chức một cuộc hội thảo khoa học để lấy ý kiến từ các nhà nghiên cứu trước khi quyết định phục dựng một số công trình kiến trúc trong thành Hoàng Đế".
Còn tiến sĩ Lê Đình Phụng thì tỏ ra cẩn thận: "Thành Hoàng Đế mang đặc thù là các di tích lại chồng lên nhau, cần phải bóc tách ra để có cái nhìn toàn diện hơn. Dẫu sao thì những gì phát hiện tại thành Hoàng Đế đã giúp cho chúng ta có một bộ sưu tập về kiến trúc cung đình khá toàn diện về các vương triều phong kiến VN".

X-Robots-Tag: noarchive

Cache-Control: public, max-age=5


markdown:
![ minhan280680](https://tinhte2.cdnforo.com/store/avatars/l/855/855043.jpg?1394077624)
- Hoạt động lần cuối:
- 29/12/15
- Tham gia:
- 28/6/11
- Bài viết:
- 261
- Được thích:
- 337
- Điểm thưởng:
[63](members/minhan280680.855043/trophies)
- Giới tính:
- Nam
- Sinh nhật:
- 28/6/80 (Tuổi: 35)
# minhan280680
Thành viên, Nam, 35
- minhan280680 lần cuối xem:
- 29/12/15
-
- Đang tải...
- Đang tải...
-
### Giới thiệu
- Giới tính:
- Nam
- Sinh nhật:
- 28/6/80 (Tuổi: 35)
### Tương tác

Set-Cookie: tt_session=5fa378cea045090dc54e16545ef69a91; path=/; domain=.tinhte.vn; secure; httponly


markdown:
# Tư vấn học tập: Học bằng sơ đồ tư duy
Tháng Ba 28, 2011
[Để lại bình luận](https://tuyensinh2011.wordpress.com/2011/03/28/tu-van-hoc-tap-hoc-bang-so-do-tu-duy/#respond)
**Phương pháp học tập, ghi nhớ hiệu quả bằng sơ đồ tư duy**
(Mind Maps)
(Học sinh nên học tập theo PP này trong việc Ôn thi ĐH – Đây là một phương pháp học tập rất khoa học, nếu thực hiện tốt sẽ giúp học tập đạt hiệu quả cao nhất)
Trước nay, chúng ta ghi chép thông tin bằng các ký tự, đường thẳng, con số. Với cách ghi chép này, chúng ta mới chỉ sử dụng một nửa của bộ não – não trái, mà chưa hề sử dụng kỹ năng nào bên não phải, nơi giúp chúng ta xử lý các thông tin về nhịp điệu, màu sắc, không gian và sự mơ mộng. Hay nói cách khác, chúng ta vẫn thường đang chỉ sử dụng 50% khả năng bộ não của chúng ta khi ghi nhận thông tin. Với mục tiêu giúp chúng ta sử dụng tối đa khả năng của bộ não, Tony Buzan đã đưa ra Bản đồ tư duy để giúp mọi người thực hiện được mục tiêu này
**Sơ đồ tư duy là gì?**
### Bạn hãy tưởng tượng tới một chú bạch tuộc có thân ở giữa và những chiếc súc tua (vòi) xung quanh. Những chiếc tua này kiếm mồi nuôi sống toàn bộ cơ thể bạch tuộc. Sơ đồ tư duy gồm 1 vấn đề lớn đặt ở trung tâm và các nhánh ý tưởng toả ra xung quanh.
### Bản đồ tư duy là một công cụ tổ chức tư duy. Đây là phương pháp dễ nhất để chuyển tải thông tin vào bộ não của bạn rồi đưa thông tin ra ngoài bộ não. Nó là một phương tiện ghi chép đầy sáng tạo và rất hiệu quả theo đúng nghĩa của nó, “Sắp xếp” ý nghĩ của bạn.
**Chúng ta thường gặp sơ đồ tư duy ở đâu?**
### Sơ đồ tư duy có ở khắp mọi nơi trong cuộc sống, chỉ cần chúng ta chú ý.
Một bông hoa với nhuỵ ở trung tâm và rất nhiều cánh vòng quanh. Một cây gỗ có những cành và lá tạo thành tán rộng.
**Sơ đồ tư duy có ích lợi gì?**
### Bản thân thiên nhiên đã phát triển thật hoàn hảo: cân đối, vững vàng, đa dạng. Một sơ đồ tư duy cho phép chúng ta thoả sức vạch ra các ý tưởng, suy nghĩ đầy đủ trước khi đi đến một quyết định. Nếu cần xây dựng một kế hoạch làm việc, phân tích một vấn đề v.v…thì sơ đồ tư duy mang đến những giá trị lớn hơn nhiều việc bạn đặt bút viết tuần tự từ đầu đến cuối trang giấy.
**Ghi chú: ** * *
*Khi thông tin được gợi ra, mind maps giúp tổ chức thông tin theo một hình thức mà dễ dàng được xuất hiện và ghi nhớ. Được sử dụng để ghi chú tất cả các loại như sách vở, bài giảng, hội họp, phỏng vấn, và đàm thoại.*
** Gợi nhớ ( Hồi tưởng):** * *
*Bất cứ khi nào thông tin được xuất hiện từ trong bộ não, thì mind maps cho phép các ý tưởng được ghi lại rất nhanh ngay khi nó được sinh ra vào một hệ được tổ chức. Vì thế chẳng cần phải viết cả một câu. Nó như một phương tiện nhanh và hiệu quả trong việc tổng quát và vì thế có thể giữ lại các hồi tưởng rất nhanh gọn.*
**Sáng tạo: ** * *
*Bất cứ khi nào bạn muốn khuyến khích sự sáng tạo, mind maps sẽ giúp bạn giải phóng cách suy diễn cổ điển theo phương thức ghi chép sự kiện theo dòng, cho phép các ý tưởng mới được hình thành nhanh chóng theo luồng tư duy xuất hiện.*
### Giải quyết vấn đề
**:** * *
*Khi bạn gặp trở ngại với một vấn đề — mind maps có thể giúp bạn nhìn nhận tất cả các vấn đề và làm thế nào để liên kết chúng lại với nhau. Nó cũng giúp bạn có được cái nhìn tổng quát là bạn có thể nhìn nhận vấn đề dưới những góc độ nào và sự quan trọng của nó.*
Lập kế hoạch:
* *
*Khi bạn cần lập kế hoạch, mind maps giúp bạn có được tất cả các thông tin liên quan vào một nơi và tổ chức nó một cách thật đơn giản.Tất cả các loại kế hoạch từ việc viết một bức thư cho đến một kịch bản, một cuốn sách, hoặc lập kế hoạch cho một cuộc họp, một ngày nghỉ.*
**Trình bày (Trình diễn):** **Trình bày (Trình diễn):**
*Khi nói ta luôn chuẩn bị tốt một mind map về một chủ đề và cách diễn đạt. Nó không chỉ giúp ta tổ chức các ý kiến hợp lý, dễ hiểu mà còn giúp ta trình bày mả không cần phải nhìn vào biên bản có sẵn.*
**Bạn có thể sử dụng sơ đồ tư duy vào nhiều việc khác nhau:**
#### * Ghi nhớ chi tiết cấu trúc đối tượng hay sự kiện mà chúng chứa các mối liên hệ phức tạp hay chằng chéo.
#### * Tổng kết dữ liệu
#### * Hợp nhất thông tin từ các nguồn nghiên cứu khác nhau.
#### * Động não về một vấn đề phức tạp.
#### * Trình bày thông tin để chỉ ra cấu trúc của toàn bộ đối tượng.
#### * Ghi chép (bài giảng, phóng sự, sự kiện…).
**Tạo sơ đồ tư duy như thế nào, có khó không?**
##### Trước hết, hãy tin rằng bất cứ ai cũng có thể tạo ra và sử dụng sơ đồ tư duy. Bạn chỉ cần cầm bút vẽ, viết vấn đề cần suy nghĩ ở giữa ở giấy (có thể thêm hình ảnh nào đó mà bạn thấy phù hợp). Tiếp đến, bạn hãy suy nghĩ thật thoải mái, cứ có một ý nghĩ nảy ra, bạn lại vẽ một nhánh đi từ trung tâm ra. Và cứ như vậy, hãy viết, vẽ, tưởng tượng không hạn chế, không cần chú ý đến trình tự, cũng không cần quan tâm xem một ý nào đó đã đầy đủ chưa (vì bạn có thể bổ sung bất cứ lúc nào mà chẳng sợ thiếu giấy)!
**Làm thế nào để mind map?!?**
### * Sử dụng những từ chính hoặc những hình ảnh cần thiết.
### * Bắt đầu từ trung tâm và triển khai ra.
### * Tạo cho trung tâm một hình ảnh rõ ràng và “mạnh” miêu tả được nội dung tổng quất của toàn bộ mind map.
### * Tạo các trung tâm nhánh và các chi tiết nhánh.
### * Đặt những từ trọng tâm vào những hàng mà làm tăng kết cấu của các ghi chú.
### * In ra giấy hơn là viết tay vì làm cho dễ đọc và dễ nhớ hơn.
### * Những trường hợp sau phải phân biệt rõ hơn những trường hợp trước.
### * Sử dụng màu sắc để làm nổi bật vấn đề.
### * Những gì không có trong trình bày thì không nên đưa vào mind map.
### * Tư duy hai chiều (phản biện)
### * Sử dụng mũi tên, biểu tượng hoặc những hình ảnh để chỉ ra sự liên kết.
### * Đừng để bị tắc ở một khu vực. Nếu cạn kiệt suy nghĩ thì chuyển sang nhánh khác
### * Ghi ngay ý tưởng vào nơi hợp lý ngay khi nghĩ ra nó. Đừng lưỡng lự.
### * Phá vỡ ranh giới. Khi hết giấy để trình bày thì đừng nên thay một tờ giấy khác to hơn mà sử dụng thêm các tờ khác ghép vào.
### * Hãy sáng tạo.
**Tóm tắt quá trình trên** *1.Bắt đầu từ trung tâm với hình ảnh của chủ đề. Tại sao lại phải dùng hình ảnh? Vì một hình ảnh có thể diễn đạt được cả ngàn từ và giúp bạn sử dụng trí tưởng tượng của mình. Một hình ảnh ở trung tâm sẽ giúp chúng ta tập trung được vào chủ đề và làm cho chúng ta hưng phấn hơn.
2.Luôn sử dụng màu sắc. Bởi vì màu sắc cũng có tác dụng kích thích não như hình ảnh
3.NỐI các nhánh chính (cấp một) đến hình ảnh trung tâm, nối các nhánh nhánh cấp hai đến các nhánh cấp một, nối các nhánh cấp ba đến nhánh cấp hai,…. bằng các đường kẻ. Các đường kẻ càng ở gần hình ảnh trung tâm thì càng được tô đậm hơn, dày hơn. Khi chúng ta nối các đường với nhau, bạn sẽ hiểu và nhớ nhiều thứ hơn rất nhiều do bộ não của chúng ta làm việc bằng sự liên tưởng
4.Mỗi từ/ảnh/ý nên đứng độc lập và được nằm trên một đường kẻ
5.Tạo ra một kiểu bản đồ riêng cho mình (Kiểu đường kẻ, màu sắc,…)
6.Nên dùng các đường kẻ cong thay vì các đường thẳng vì các đường cong được tổ chức rõ ràng sẽ thu hút được sự chú ý của mắt hơn rất nhiều
7.Bố trí thông tin đều quanh hình ảnh trung tâm* ![sodo tuduy 2 sodo tuduy 2](https://mrddt.files.wordpress.com/2009/07/sodo-tuduy-2.jpg?w=468&h=358)
![sodo tuduy 2 sodo tuduy 2](https://mrddt.files.wordpress.com/2009/07/sodo-tuduy-2.jpg?w=468&h=358)
****
## Bản đồ tư duy trên máy tính – Phần mềm hỗ trợ vẽ bản đồ tư duy trên máy tính
• MindManager – Phần mềm này đã được sử dụng khá nhiều tại Việt Nam. MindManager chỉ chạy được trên hệ điều hành Microsoft Windows
• FreeMind Phần mềm nguồn mở, chạy trên hệ điều hành Windows, Mac và Linux. Hiện nay nhóm mã nguồn mở của HueCIT đã nghiên cứu và viết tài liệu hướng dẫn sử dụng
• Một số phần mềm khác: ConceptDraw MINDMAP, Visual Mind, Axon Idea Processor, Inspiration,…
**Click here Download phần mềm vẽ sơ đồ tư duy**
## Về tác giả Tony Buzan
Tony Buzan là người sáng tạo ra phương pháp tư duy Mind Map (bản đồ tư duy). Tony Buzan từng nhận bằng Danh dự về tâm lý học, văn chương Anh, toán học và nhiều môn khoa học tự nhiên của trường ĐH British Columbia năm 1964. Tony Buzan là tác giả hàng đầu thế giới về não bộ.
Ông đã viết 92 đầu sách và được dịch ra trên 30 thứ tiếng, với hơn 3 triệu bản, tại 125 quốc gia trên thế giới. Tony Buzan được biết đến nhiều nhất qua cuốn “Use your head”. Trong đó, ông trình bày cách thức ghi nhớ tự nhiên của não bộ cùng với các phương pháp Mind Map. Ngoài ra, ông còn có một số sách nổi tiếng khác như Use your memory, Mind Map Book
Sử dụng tài liệu của : mrddt.wordpress.com

Link: <http://wp.me/p1nWEN-T>; rel=shortlink


markdown:
# 3226 Plinius
Bách khoa toàn thư mở Wikipedia
|Khám phá và chỉ định|
|Khám phá bởi||
|[Đài thiên văn Palomar](/wiki/%C4%90%C3%A0i_thi%C3%AAn_v%C4%83n_Palomar) [Tên chỉ định tiểu hành tinh](/w/index.php?title=T%C3%AAn_ch%E1%BB%89_%C4%91%E1%BB%8Bnh_ti%E1%BB%83u_h%C3%A0nh_tinh&action=edit&redlink=1) [Tên thay thế](/w/index.php?title=T%C3%AAn_ch%E1%BB%89_%C4%91%E1%BB%8Bnh_t%E1%BA%A1m_th%E1%BB%9Di_trong_thi%C3%AAn_v%C4%83n_h%E1%BB%8Dc&action=edit&redlink=1) [Đặc trưng quỹ đạo](/wiki/Qu%E1%BB%B9_%C4%91%E1%BA%A1o_m%E1%BA%ADt_ti%E1%BA%BFp) [Kỷ nguyên](/wiki/K%E1%BB%B7_nguy%C3%AAn_(thi%C3%AAn_v%C4%83n_h%E1%BB%8Dc))14 tháng 5, 2008 [Cận điểm quỹ đạo](/wiki/C%E1%BB%A7ng_%C4%91i%E1%BB%83m_qu%E1%BB%B9_%C4%91%E1%BA%A1o) [Viễn điểm quỹ đạo](/wiki/C%E1%BB%A7ng_%C4%91i%E1%BB%83m_qu%E1%BB%B9_%C4%91%E1%BA%A1o) [Độ lệch tâm](/wiki/%C4%90%E1%BB%99_l%E1%BB%87ch_t%C3%A2m_qu%E1%BB%B9_%C4%91%E1%BA%A1o) [Chu kỳ quỹ đạo](/wiki/Chu_k%E1%BB%B3_qu%E1%BB%B9_%C4%91%E1%BA%A1o) [Độ bất thường trung bình](/wiki/%C4%90%E1%BB%99_b%E1%BA%A5t_th%C6%B0%E1%BB%9Dng_trung_b%C3%ACnh) [Độ nghiêng quỹ đạo](/wiki/%C4%90%E1%BB%99_nghi%C3%AAng_qu%E1%BB%B9_%C4%91%E1%BA%A1o) [Kinh độ của điểm nút lên](/wiki/Kinh_%C4%91%E1%BB%99_c%E1%BB%A7a_%C4%91i%E1%BB%83m_n%C3%BAt_l%C3%AAn) [Acgumen của cận điểm](/wiki/Acgumen_c%E1%BB%A7a_c%E1%BA%ADn_%C4%91i%E1%BB%83m) [Đặc trưng vật lý chuẩn của tiểu hành tinh](/w/index.php?title=%C4%90%E1%BA%B7c_tr%C6%B0ng_v%E1%BA%ADt_l%C3%BD_chu%E1%BA%A9n_c%E1%BB%A7a_ti%E1%BB%83u_h%C3%A0nh_tinh&action=edit&redlink=1) [Cấp sao tuyệt đối](/wiki/C%E1%BA%A5p_sao_tuy%E1%BB%87t_%C4%91%E1%BB%91i) *(H)* **3226 Plinius** (6565 P-L) là một [tiểu hành tinh](/wiki/Ti%E1%BB%83u_h%C3%A0nh_tinh) [vành đai chính](/wiki/V%C3%A0nh_%C4%91ai_ti%E1%BB%83u_h%C3%A0nh_tinh) được phát hiện ngày 24 tháng 9, 1960 bởi [Cornelis Johannes van Houten](/w/index.php?title=Cornelis_Johannes_van_Houten&action=edit&redlink=1), [Ingrid van Houten-Groeneveld](/w/index.php?title=Ingrid_van_Houten-Groeneveld&action=edit&redlink=1) và [Tom Gehrels](/w/index.php?title=Tom_Gehrels&action=edit&redlink=1) ở [Đài thiên văn Palomar](/wiki/%C4%90%C3%A0i_thi%C3%AAn_v%C4%83n_Palomar).
## Tham khảo[
[sửa](/w/index.php?title=3226_Plinius&veaction=edit&vesection=1) | [sửa mã nguồn](/w/index.php?title=3226_Plinius&action=edit§ion=1)]
## Liên kết ngoài[
[sửa](/w/index.php?title=3226_Plinius&veaction=edit&vesection=2) | [sửa mã nguồn](/w/index.php?title=3226_Plinius&action=edit§ion=2)]
|
|
|
|
|Danh sách/danh mục
|

Cache-Control: private, s-maxage=0, max-age=0, must-revalidate

Via: 1.1 varnish, 1.1 varnish

Content-Language: vi

X-UA-Compatible: IE=Edge

X-Cache: cp1068 miss(0), cp1065 frontend miss(0)

Vary: Accept-Encoding,Cookie

Accept-Ranges: bytes


markdown:
# Cichlasomatinae
Bách khoa toàn thư mở Wikipedia
|Cichlasomatinae|
|
|![]()
[Phân loại khoa học](/wiki/Ph%C3%A2n_lo%E1%BA%A1i_sinh_h%E1%BB%8Dc) [Giới](/wiki/Gi%E1%BB%9Bi_(sinh_h%E1%BB%8Dc))( *regnum*) [Animalia](/wiki/%C4%90%E1%BB%99ng_v%E1%BA%ADt) [Ngành](/wiki/Ng%C3%A0nh_(sinh_h%E1%BB%8Dc))( *phylum*) [Chordata](/wiki/%C4%90%E1%BB%99ng_v%E1%BA%ADt_c%C3%B3_d%C3%A2y_s%E1%BB%91ng) [Lớp](/wiki/L%E1%BB%9Bp_(sinh_h%E1%BB%8Dc))( *class*) [Actinopterygii](/wiki/L%E1%BB%9Bp_C%C3%A1_v%C3%A2y_tia) [Bộ](/wiki/B%E1%BB%99_(sinh_h%E1%BB%8Dc))( *ordo*) [Perciformes](/wiki/B%E1%BB%99_C%C3%A1_v%C6%B0%E1%BB%A3c) [Họ](/wiki/H%E1%BB%8D_(sinh_h%E1%BB%8Dc))( *familia*) [Cichlidae](/wiki/H%E1%BB%8D_C%C3%A1_ho%C3%A0ng_%C4%91%E1%BA%BF) [Phân họ](/wiki/Ph%C3%A2n_h%E1%BB%8D)( *subfamilia*) **Cichlasomatinae** [Kullander](/w/index.php?title=Sven_O._Kullander&action=edit&redlink=1), 1998 [Các chi](/wiki/Chi_(sinh_h%E1%BB%8Dc))
Xem trong bài.
**Cichlasomatinae** là một phân họ trong [họ Cá hoàng đế](/wiki/H%E1%BB%8D_C%C3%A1_ho%C3%A0ng_%C4%91%E1%BA%BF). Phân họ này bao gồm tất cả các loài cá hoàng đế bản địa của [Caribe](/wiki/V%C3%B9ng_Caribe) ( [Cuba](/wiki/Cuba) và [Hispaniola](/wiki/Hispaniola)), [Hoa Kỳ](/wiki/Hoa_K%E1%BB%B3) (miền nam [Texas](/wiki/Texas)), [Mexico](/wiki/M%C3%A9xico) và [Trung Mỹ](/wiki/Trung_M%E1%BB%B9), và một số loài khác ở [Nam Mỹ](/wiki/Nam_M%E1%BB%B9) (các phân họ khác ở Nam Mỹ là [Astronotinae](/wiki/Astronotinae), [Cichlinae](/wiki/Cichlinae), [Geophaginae](/wiki/Geophaginae) và [Retroculinae](/wiki/Retroculus)). Phân họ Cichlasomatinae thường được chia thành 2 tông: [Cichlasomatini](/w/index.php?title=Cichlasomatini&action=edit&redlink=1) và [Heroini](/w/index.php?title=Heroini&action=edit&redlink=1).
## Các chi[
[sửa](/w/index.php?title=Cichlasomatinae&veaction=edit&vesection=1) | [sửa mã nguồn](/w/index.php?title=Cichlasomatinae&action=edit§ion=1)]
Phân họ này gồm khoảng 47 chi và 260 loài:
[[1]](#cite_note-1) *Myers, 1940* [Acaronia](/wiki/Acaronia) *Eigenmann & Bray, 1894* [Aequidens](/wiki/Aequidens) *Schmitter-Soto, 2007* [Amatitlania](/wiki/Amatitlania) *Agassiz, 1859* [Amphilophus](/wiki/Amphilophus) *Musilová, Říčan & Novák, 2009* [Andinoacara](/wiki/Andinoacara) *Gill, 1877* [Archocentrus](/w/index.php?title=Archocentrus&action=edit&redlink=1) *Říčan & Kullander, 2006* [Australoheros](/w/index.php?title=Australoheros&action=edit&redlink=1) *Kullander, 1986* [Bujurquina](/wiki/Bujurquina) *Fowler, 1945* [Caquetaia](/wiki/Caquetaia) *McMahan & Piller, 2015* [Chiapaheros](/w/index.php?title=Chiapaheros&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2) *Swainson, 1839* [Cichlasoma](/wiki/Cichlasoma) *McMahan & Piller, 2015* [Cincelichthys](/w/index.php?title=Cincelichthys&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2) *Kullander & Nijssen 1989* [Cleithracara](/w/index.php?title=Cleithracara&action=edit&redlink=1) *Allgayer, 2001* [Cryptoheros](/w/index.php?title=Cryptoheros&action=edit&redlink=1) *Kullander & Nijssen, 1989* [Guianacara](/w/index.php?title=Guianacara&action=edit&redlink=1) *Baird & Girard, 1854* [Herichthys](/wiki/Herichthys) *Kullander, 1996* [Heroina](/w/index.php?title=Heroina_(genus)&action=edit&redlink=1) *Heckel, 1840* [Heros](/w/index.php?title=Heros_genus&action=edit&redlink=1) *Pellegrin, 1904* [Herotilapia](/w/index.php?title=Herotilapia&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2) *Kaup, 1860* [Hoplarchus](/w/index.php?title=Hoplarchus&action=edit&redlink=1) *Kullander, 1986* [Hypselecara](/w/index.php?title=Hypselecara&action=edit&redlink=1) *Agassiz, 1859* [Hypsophrys](/w/index.php?title=Hypsophrys&action=edit&redlink=1) *McMahan & Matamoros, 2015* [Kihnichthys](/w/index.php?title=Kihnichthys&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2) *Kullander & Nijssen, 1989* [Krobia](/w/index.php?title=Krobia_(genus)&action=edit&redlink=1) *Kullander, 1986* [Laetacara](/w/index.php?title=Laetacara&action=edit&redlink=1) *McMahan & Piller, 2015* [Maskaheros](/w/index.php?title=Maskaheros&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2) *McMahan & Chakrabarty, 2015* [Mesoheros](/w/index.php?title=Mesoheros&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2) *Günther, 1867* [Mesonauta](/w/index.php?title=Mesonauta&action=edit&redlink=1) *Gill, 1862* [Nandopsis](/w/index.php?title=Nandopsis&action=edit&redlink=1) *Regan, 1905* [Nannacara](/w/index.php?title=Nannacara&action=edit&redlink=1) *De la Maza-Benignos, Ornelas-García, Lozano-Vilano, García-Ramírez & Doadrio, 2015* [Nosferatu](/w/index.php?title=Nosferatu_(genus)&action=edit&redlink=1) [[3]](#cite_note-3) *McMahan & Chakrabarty, 2015* [Oscura](/w/index.php?title=Oscura_(fish)&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2) *Agassiz, 1859* [Parachromis](/w/index.php?title=Parachromis&action=edit&redlink=1) *Regan, 1905* [Paraneetroplus](/w/index.php?title=Paraneetroplus&action=edit&redlink=1) *Günther, 1862* [Petenia](/w/index.php?title=Petenia&action=edit&redlink=1) *Heckel, 1840* [Pterophyllum](/wiki/Pterophyllum) *McMahan & Matamoros, 2015* [Rheoheros](/w/index.php?title=Rheoheros&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2) *Schmitter-Soto, 2007* [Rocio](/w/index.php?title=Rocio&action=edit&redlink=1) *Ottoni & Mattos, 2015* [Rondonacara](/w/index.php?title=Rondonacara&action=edit&redlink=1) [[4]](#cite_note-Ottoni2015-4) *Heckel, 1840* [Symphysodon](/wiki/Symphysodon) *Kullander, 1986* [Tahuantinsuyoa](/w/index.php?title=Tahuantinsuyoa&action=edit&redlink=1) *Günther, 1862* [Theraps](/w/index.php?title=Theraps&action=edit&redlink=1) *Meek, 1904* [Thorichthys](/w/index.php?title=Thorichthys&action=edit&redlink=1) *Regan, 1908* [Tomocichla](/w/index.php?title=Tomocichla&action=edit&redlink=1) *McMahan & Chakrabarty, 2015* [Trichromis](/w/index.php?title=Trichromis&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2) *Heckel, 1840* [Uaru](/w/index.php?title=Uaru&action=edit&redlink=1) *Fernández-Yépez, 1969* [Vieja](/w/index.php?title=Vieja&action=edit&redlink=1) [[2]](#cite_note-Mahan2015-2)
## Hình ảnh[
[sửa](/w/index.php?title=Cichlasomatinae&veaction=edit&vesection=2) | [sửa mã nguồn](/w/index.php?title=Cichlasomatinae&action=edit§ion=2)]
## Tham khảo[
[sửa](/w/index.php?title=Cichlasomatinae&veaction=edit&vesection=3) | [sửa mã nguồn](/w/index.php?title=Cichlasomatinae&action=edit§ion=3)] **Chủ biên Ranier Froese và Daniel Pauly. (2015).** [^](#cite_ref-1) ["Cichlidae"](http://www.fishbase.org/Summary/FamilySummary.cfm?Family=Cichlidae)trên *. Phiên bản tháng April năm 2015.* [FishBase](/wiki/FishBase)
- ^
**a** **ă** **â** **b** **c** **d** **đ** **e** **ê** [McMahan, C.D., Matamoros, W.A., Piller, K.R. & Chakrabarty, P. (2015).](#cite_ref-Mahan2015_2-9) **g** [“Taxonomy and systematics of the herichthyins (Cichlidae: Tribe Heroini), with the description of eight new Middle American Genera”](http://www.mapress.com/zootaxa/2015/f/zt03999p234.pdf)(PDF). *Zootaxa,* **3999**(2): 211–234. **De la Maza-Benignos, M., Ornelas-García, C.P., Lozano-Vilano, M.d.L., García-Ramírez, M.E. & Doadrio, I. (2015). Phylogeographic analysis of genus** [^](#cite_ref-3) *Herichthys*(Perciformes: Cichlidae), with descriptions of *Nosferatu*new genus and *H. tepehua*n. sp. *Hydrobiologia, 748 (1): 201–231.* **Ottoni, F.P. & Mattos, J.L.O. (2015).** [^](#cite_ref-Ottoni2015_4-0) [“Phylogenetic position and re-description of the endangered cichlid](http://www.senckenberg.de/files/content/forschung/publikationen/vertebratezoology/vz65-1/08_vertebrate_zoology_65-1_ottoni_et_al_65-79.pdf)(PDF). *Nannacara hoehnei*, and description of a new genus from Brazilian Cerrado (Teleostei, Cichlidae, Cichlasomatini)” *Vertebrate Zoology,* **65**(1): 65–79.
## Liên kết ngoài[
[sửa](/w/index.php?title=Cichlasomatinae&veaction=edit&vesection=4) | [sửa mã nguồn](/w/index.php?title=Cichlasomatinae&action=edit§ion=4)]
|
|![]()
|Wikimedia Commons có thêm thư viện hình ảnh và phương tiện truyền tải về
|
|
|![]()
|
| có thông tin sinh học về